home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-04-06 | 189.5 KB | 5,299 lines |
- This digest for list amigae-list has been created on Sun Mar 1 14:03:06 1998
-
-
- ------- THIS IS A RFC934 COMPLIANT DIGEST, YOU CAN BURST IT -------
-
- Date: Sun, 01 Mar 1998 14:01:22 +0100
- From: gamboni@fastnet.ch (Jacques Gamboni)
- Subject: Attribute refreshing with MUI
-
- I have trouble to refresh some objects in MUI:
- In most cases, a simple Mui_Redraw() is sufficient, but not always.
- Examples:
- * I have a group with custom layout, that can get new objects with drag
- 'n' drop: I have
- a library of available objects, the user drops one at the place he
- wants. Because a group mustn't
- be empty, when no objects are in the group I put an invisible
- RectangleObject, that I remove
- as soon as a new object is created. In this case, the number of objects
- (1) doesn't change, so maybe
- it is the reason why MUI doesn't call my custom layout hook (the first
- object drop in the window
- is always at the same place, the place where I put the rectangle at
- creation time). When the window is resized,
- the layout hook is called and the new object appears at correct place.
- * The objects should be moved with Drag'n'Drop: When my Group recieves a
- drop message, it
- moves the coordinates (global variables, read by my custom layout hook).
-
- The problem is that my custom layout hook is not called, even when
- Mui_Redraw is called: The user
- must resize the window so that the custom layout hook is called and now
- the objects appears at the
- correct place. How can I call my hook from the program? Using
- MUIM_CallHook is probably
- not sufficient, because the resulting values aren't read by Mui..
- * I need in some cases to change the MUIA_Image_Spec of an ImageObject,
- but Mui doesn't react
- when I execute
- set(gad,MUIA_Image_Spec,s)..
- And I'm sure the command is correct because when I iconify the window
- and open it again, Mui reloads
- all images of the window, and displays the correct images, but when I
- redraw the window (e.g. resize
- or MUI_Redraw()), the image doesn't change..
- So I would need to ask Mui to reload the image, in this case.
-
-
- Maxime
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: massa@earthling.net ("Matthew K. Massa")
- Date: Sun, 01 Mar 1998 09:58:07 -0600
- Subject: UNSUBSCRIBE
-
- Hello,
-
- Kind regards
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: massa@earthling.net ("Matthew K. Massa")
- Date: Sun, 01 Mar 1998 10:05:46 -0600
- Subject: UNSUBSCRIBE
-
- Hello,
-
- Kind regards
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 3 Mar 1998 13:15:05 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: EasyGUI
-
- Hi,
-
- I found some a little annoying limitations when using EasyGUI for my tiny
- moduleplayer. The problems I had have to do with the slider-gadget:
-
- 1. There is no proc to change the min- and max values of a slider
- (workaround: I used Gt_SetGadgetAttrsA, this works flawlessly)
-
- 2. The EasyGUI-slider seems to have 'GA_RelVerify' on by default, i.e. my
- corresponding procedure is called on every slidermove. I'd like to have
- the slider have 'GA_RelVerify' set to 0, since I only want to call my
- procedure (set and play a new subsong, e.g. with sidplayer) when the
- slider really has moved and the mousebutton is not pressed any more.
- Gt_SetGadgetAttrsA isn't able to change 'GA_Relverify', so that I would
- have to resort to creating my own slider from gadtools... not nice :(
-
- Are there other workarounds?
-
- Apart from that, EasyGUI is just a nice system, I like it very much and
- won't resort to MUI or BGUI, I think.
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 4 Mar 1998 10:50:19 GMT
- From: jason@fsel.com (Jason Hulance)
- Subject: Re: Re[3]: whatis.library
-
- Eric Sauvageau <merlin@thule.no> quoted and wrote:
-
- > > And of course you're taking the date from a similar datestamp on Aminet.
- > > That's a good comparison...
- >
- > No, I'm taking the date from my own knowledge :)
-
- Yes, I thought as much. The first version of NewIcons that I saw on
- Aminet was at the end of 1994. That's a good six months *after* the
- release of FakeDefIcon...
-
- > The FakeDefIcon on Aminet was labeled v0.1, so I assumed it was the
- > first (and last) version you ever released. If you released 0.05
- > before that, then my apologies :)
-
- That was the first and only version, as you suggest, but it obviously
- took quite a while to develop and write. I was actually hoping someone
- would take the idea and develop it further (I supplied everything,
- including the source). So, I wasn't upset when DefIcons came out using
- the same techniques, just a bit miffed that there wasn't any
- attribution. I'm quite happy to assume it was a big coincidence.
-
- Of course, in an ideal world, the Workbench would have hooks in it for
- programmers to add their own extensions and we wouldn't need hacks like
- these. (Actually, maybe there are such things as patchable, private
- entries in workbench.library... Any clues, Eric?)
-
- Cheers!
-
- - --
- The conundrum for today is "plstighyr".
- Your numbers are 100, 10, 2, 3, 5 and 1. The target value is 834.
- ======================================================================
- Jason R. Hulance Email: jason@fsel.com
- Formal Systems (Europe) Ltd Tel: [+44] (0)1865 728460
- 3 Alfred Street, Oxford OX1 4EH, UK Fax: [+44] (0)1865 201114
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 4 Mar 1998 14:19:39 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: Re[3]: whatis.library
-
- On Wed, 4 Mar 1998, Jason Hulance wrote:
-
- =>Of course, in an ideal world, the Workbench would have hooks in it for
- =>programmers to add their own extensions and we wouldn't need hacks like
- =>these.
-
- Like RiscOS, perhaps?
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht unterkriegen
- Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein Lager; Er trinkt
- ein Cider; Er singt die Lieder, die ihn; An die guten Zeiten erinnern; Er singt
- die Lieder, die ihn; An die besseren Zeiten erinnern
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Wed, 4 Mar 1998 14:07:21 +0500
- Subject: Workbench patching
-
- On Wed, 4 Mar 1998, we received a letter from about 'Re: Re[3]: whatis.library':
-
- > Of course, in an ideal world, the Workbench would have hooks in it for
- > programmers to add their own extensions and we wouldn't need hacks like
- > these. (Actually, maybe there are such things as patchable, private
- > entries in workbench.library... Any clues, Eric?)
-
- Sadly, Workbench is very closed. You see, Workbench was originaly written by
- a guy whose name I forgot who was more used in working on large systems. Workbench
- 1.x ended up being quite messy, doing a lot of private layers trick rather than
- calling OS functions for it, and so on. When with 2.x CBM decided to almost
- rewrite half of the OS, they looked at WB, and faced a rather messy source, so
- WB got very few enhancements.
- Heck, FULL font sensitivity was only attained with 3.1, when the Execute COmmand
- window also got font-sensitive.
-
- Workbench.library has a few vectors, but not much that can be patched. The vectors
- I know about (in addition of the well-known App#? ones):
-
- - - WBInfo() (V39) opens the WB icon Information window
- - - A routine called by IPrefs to refresh the WB (args determine if it will refresh
- icons, fonts, or close the screen and reopen it.)
-
- - - An LVO for launching WB
-
- I think there's another LVO related to the devices shown on the WB screen, called
- every 2-3 secs.
-
- But sadly, no real way to wedge in to patch any function beside the icon Information
- window. That's why the way to go is with complete WB replacements, such as DOpus
- or Scalos (for which I betatest and write ClassAct modules).
-
- And so, patches like NewIcon or #?DefIcon had to rely on higher-level patching.
- NewIcon patches icon.library, and does some graphics.library patches to achieve
- the no border/font outline/transparent dragging stuff.
-
- Ciao!
-
-
-
- ... Your PC is always crashing? Try setting BUGS=OFF in your CONFIG.SYS.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 5 Mar 1998 12:43:39 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: MultiUser
-
- Hi !
-
- I'm searching for AmigaE modules for multiuser.library. I have
- emodules:multiuser.m converted from pragma but I don't know how to convert
- libraries/multiuser.(i|h) -> AmigaE module. Please help..
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Thu, 5 Mar 1998 14:31:56 +0500
- Subject: Re: MultiUser
-
- On Thu, 5 Mar 1998, we received a letter from about 'MultiUser':
-
- > Hi !
- >
- > I'm searching for AmigaE modules for multiuser.library. I have
- > emodules:multiuser.m converted from pragma but I don't know how to convert
- > libraries/multiuser.(i|h) -> AmigaE module. Please help..
-
- I'll probably have to convert them myself soon for a Scalos module I'm writing.
- Send me what's you've got, I'll convert the remaining includes for you.
-
- Ciao!
-
-
-
- ... "Hyper 5... Embraye!" - Picard, "Star Trek:Generations" v.f.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: kolo8@ely.pg.gda.pl (Piotr Gapinski)
- Date: Fri, 06 Mar 1998 08:56:40 +0100
- Subject: easyGUI
-
- Warning: This is a message in MIME format. Your mail reader does not
- support MIME. Some parts of this message will be readable as plain text.
- To see the rest, you will need to upgrade your mail reader.
-
- This message was composed on an Amiga using the YAM mailer.
- YAM is available at http://bitcom.ch/~mbeck/
-
- - --BOUNDARY.7369.2008.5943528.1
- Content-Type: text/plain
-
- Two small extensions to the easyGui module.
- Now user CAN change window pos or size even when window is closed.
-
-
- /********** movewin() **********/
- EXPORT PROC movewin(gh:PTR TO guihandle,x=-1,y=-1)
- DEF w:PTR TO window
- IF w:=gh.wnd
- MoveWindow(w, IF x=-1 THEN 0 ELSE (x-w.leftedge),
- IF y=-1 THEN 0 ELSE (y-w.topedge))
- ELSE
- gh.x:=x
- gh.y:=y
- ENDIF
- ENDPROC
-
- /********** sizewin() **********/
- EXPORT PROC sizewin(gh:PTR TO guihandle,xs=-1,ys=-1)
- DEF w:PTR TO window
- IF w:=gh.wnd
- SizeWindow(w, IF xs=-1 THEN 0 ELSE (xs-w.width),
- IF ys=-1 THEN 0 ELSE (ys-w.height))
- ELSE
- gh.xsize:=xs
- gh.ysize:=ys
- ENDIF
- ENDPROC
-
- PS: new module (easygui.m) included
-
- Pozdrawiam,
- - -----///-----------------------
- Piotr Gapinski
- mailto: kolo8@ely.pg.gda.pl
-
- - --BOUNDARY.7369.2008.5943528.1
- Content-Type: application/octet-stream; name="easy.lha"
- Content-Transfer-Encoding: base64
-
- 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
-
- - --BOUNDARY.7369.2008.5943528.1--
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: sanric@ronet.it (Riccardo Santato)
- Date: Sat, 07 Mar 1998 17:27:59 +0100
- Subject: AFC problems
-
- Hello !
-
- I've been using Super_Picture object from AFC. After having put a backdrop
- picture
- for my E Project Manager on an Intuition screen, I'm not able to keep it
- refreshed,
- so when it comes to move an Easygui window, the picture is deleted.
-
- Are there workaround for this or particular screen flags that I can put ?
-
- - --
- ==============================================
- Santato Riccardo
-
- sanric@ronet.it
- ==============================================
-
-
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 9 Mar 1998 10:35:39 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: Freezing a process/task
-
- Hi #?,
-
- for my 'EasyPlayer' (will develop to a configurable modplayer using
- external players like sidplay and mpega...) I'd need to know how to freeze
- a process/task like sysmonitors like Xoper or Scout do. I need this to
- freeze the external launched programs and pause them - hard method but I
- don't see why I shouldn't do it :)
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: jj@it.kth.se (Janne Johansson)
- Subject: Re: Freezing a process/task
- Date: Mon, 09 Mar 1998 11:08:06 +0100
-
- > for my 'EasyPlayer' (will develop to a configurable modplayer using
- > external players like sidplay and mpega...) I'd need to know how to freeze
- > a process/task like sysmonitors like Xoper or Scout do. I need this to
- > freeze the external launched programs and pause them - hard method but I
- > don't see why I shouldn't do it :)
-
- One easy way is to change the TaskPri to -128.
- Tasks with that prio never get any cpu.
-
- - -------------
- "Every girl with sense, loves those dead
- presidents..." -Quireboys
-
- Mail: jj<at>it.kth.se
- Phone: +46-8-7521444 (work)
- Cell: +46-70-740 1440
- Http: //www.it.kth.se/~jj
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 9 Mar 1998 10:41:38 GMT
- From: jason@fsel.com (Jason Hulance)
- Subject: Re: Freezing a process/task
-
- Ralph Debusmann <rade@coli.uni-sb.de> wrote:
-
- > for my 'EasyPlayer' (will develop to a configurable modplayer using
- > external players like sidplay and mpega...) I'd need to know how to freeze
- > a process/task like sysmonitors like Xoper or Scout do. I need this to
- > freeze the external launched programs and pause them - hard method but I
- > don't see why I shouldn't do it :)
-
- AFAIK, prodding a task externally using such functions is very nasty.
- Your task could be in the middle of anything. A much nicer scheme would
- use a semaphore to put the task to sleep until it was required again.
- Investigate semaphores, they're very easy to use and they let you do
- what you want in a *safe* and supported way.
-
- Cheers!
-
- - --
- The conundrum for today is "aepmrolnt".
- Your numbers are 100, 8, 10, 3, 9 and 5. The target value is 725.
- ======================================================================
- Jason R. Hulance Email: jason@fsel.com
- Formal Systems (Europe) Ltd Tel: [+44] (0)1865 728460
- 3 Alfred Street, Oxford OX1 4EH, UK Fax: [+44] (0)1865 201114
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Mon, 9 Mar 1998 14:44:50 +0500
- Subject: Re: Freezing a process/task
-
- On Mon, 9 Mar 1998, we received a letter from about 'Freezing a process/task':
-
- > Hi #?,
- >
- > for my 'EasyPlayer' (will develop to a configurable modplayer using
- > external players like sidplay and mpega...) I'd need to know how to freeze
- > a process/task like sysmonitors like Xoper or Scout do. I need this to
- > freeze the external launched programs and pause them - hard method but I
- > don't see why I shouldn't do it :)
-
- It's done in a rather dirty way. I wouldn't recommend it for an application
- you use everyday, way too much problems could appear from it.
-
- You'd be better using a signal. Have that application wait for a specific signal
- in all its Wait() blocks, or check periodicaly if a given signal was set. If
- it's set, immediately Wait() for another signal that would tell it to resume.
- 100% OS legal, and garanteed to work under future revisions of the OS.
-
- The method we use to freeze a task can cause serious damage when in the middle
- of some form of interprocess communication. Let's say Task 'A' sends to 'B',
- 'B' gets freezed at the same time, and task 'A' still waits for an answer from
- 'B', but 'B' no longer exists. Result: 'A' locks (imagine if 'A' is Intuition
- or input.device...), or even crashes.
-
- Ciao!
-
-
-
- ... There is no security between the cradle and the grave.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Mon, 9 Mar 1998 14:50:00 +0500
- Subject: Re[2]: Freezing a process/task
-
- On Mon, 9 Mar 1998, we received a letter from about 'Re: Freezing a process/task':
-
- > > for my 'EasyPlayer' (will develop to a configurable modplayer using
- > > external players like sidplay and mpega...) I'd need to know how to freeze
- > > a process/task like sysmonitors like Xoper or Scout do. I need this to
- > > freeze the external launched programs and pause them - hard method but I
- > > don't see why I shouldn't do it :)
- >
- > One easy way is to change the TaskPri to -128.
- > Tasks with that prio never get any cpu.
-
- 'Never' is such a strong word :) I saw CPU meters who measure how much CPU is
- available by using such a low-priority task. If the CPU was always 100% loaded,
- then that low pri task would never get called. But since those CPU meter do
- show more than 0% available, I'd say tasks with such a low priority DO get the
- CPU from time to time.
-
- Would be nice if the Exec scheduler would support a special pri (pri -128 could
- be it) at which it would NEVER schedule the task. Could be nicely and cleanly
- used for freezing a task. Although for real safety, the task would have to give
- some form of hint that it can be safely freezed at this very moment, i.e. that
- it isn't in the middle of something time-critical such as interprocess communication.
-
- Ciao!
-
-
-
- ... "Counselor, may I -uh- use yer combadge?"
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: Jaco.Schoonen@topic.nl
- Subject: <none>
- Date: Mon, 9 Mar 1998 21:56:35 +0100
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 09 Mar 1998 22:33:11 +0000
- From: tucks@pavilion.co.uk (Liz Tucker)
- Subject: GamesMasterSystem library
-
- Hi,
-
- I am currently a Blitz Basic programmer but I was looking to move to C.
-
- However I have had the GMS library mentioned to me and try as I may, I
- can`t get any of the included sources to link correctly.
-
- Then I read about the E support for the library so I decided to look at
- the E language and I find that it compiles the GMS sources perfectly. :)
-
- So my first two questions to the list are...
-
- 1. Does anyone else use the GMS library who could offer me any advice as
- a newbee to E and the lib (off of the list if necessary).
-
- 2. C and E appear very similar in syntax at first glance. What
- advantages (and disadvantages if any) are there to using E as opposed to
- C which is of course used universally?? Apart from the OOP included in E
- which I would need C++ for.
-
- See you,
-
- Liz.
-
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- tucks@pavilion.co.uk
- 4437135@pager.mirabilis.com http://wwp.mirabilis.com/4437135
-
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- Desktop Corruption - Team Leader http://deskcorruption.home.ml.org
- Email us at............ deskcorruption@thehub.u-net.com
- Current Project.......... Dafel:Bloodline
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: jj@it.kth.se (Janne Johansson)
- Subject: Re: Re[2]: Freezing a process/task
- Date: Tue, 10 Mar 1998 09:16:05 +0100
-
- > > > for my 'EasyPlayer' (will develop to a configurable modplayer using
- > > > external players like sidplay and mpega...) I'd need to know how to freeze
- > > > a process/task like sysmonitors like Xoper or Scout do. I need this to
- > > > freeze the external launched programs and pause them - hard method but I
- > > > don't see why I shouldn't do it :)
- > >
- > > One easy way is to change the TaskPri to -128.
- > > Tasks with that prio never get any cpu.
- >
- > 'Never' is such a strong word :) I saw CPU meters who measure how much CPU is
- > available by using such a low-priority task. If the CPU was always 100% loaded,
-
- AFAIK those kind of meters (I've written one myself) actually use
- - -127 for that particurlar reason.
-
- > then that low pri task would never get called. But since those CPU meter do
- > show more than 0% available, I'd say tasks with such a low priority DO get the
- > CPU from time to time.
-
- If you are right, that is. =)
-
- > Would be nice if the Exec scheduler would support a special pri (pri -128 could
- > be it) at which it would NEVER schedule the task. Could be nicely and cleanly
- > used for freezing a task. Although for real safety, the task would have to give
- > some form of hint that it can be safely freezed at this very moment, i.e. that
- > it isn't in the middle of something time-critical such as interprocess communication.
-
- Then again, while fiddling with time-sensitive stuff, you are required to
- take appropriate precautions anyhow, and since a pri 0 task could lose
- cpu for some .5 secs in any case just by having some other task need it
- for something else, you still would end up having problems if your
- task didn't get CPU every so often.
-
- I am not 100% sure, but I do think this is the case. A -128 task
- will never get cpu, but I have no proof at this time that it
- actually is that way. Guess it would say so in RKRM Libs or something
- similar.
-
- - -------------
- "Every girl with sense, loves those dead
- presidents..." -Quireboys
-
- Mail: jj<at>it.kth.se
- Phone: +46-8-7521444 (work)
- Cell: +46-70-740 1440
- Http: //www.it.kth.se/~jj
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: a9660319@wlv.ac.uk
- Subject: Re: GamesMasterSystem library
- Date: Tue, 10 Mar 1998 09:46:22 -0500 (EST)
-
- On Mon, 09 Mar 1998 22:33:11 +0000 Liz Tucker <tucks@pavilion.co.uk>
- wrote:
- > Hi,
-
- Hi Liz.
-
- > However I have had the GMS library mentioned to me and try as I may, I
- > can`t get any of the included sources to link correctly.
-
- What is the GMS library? And what does it do?
-
- > 1. Does anyone else use the GMS library who could offer me any advice
- > as
- > a newbee to E and the lib (off of the list if necessary).
- >
- > 2. C and E appear very similar in syntax at first glance. What
- > advantages (and disadvantages if any) are there to using E as opposed to
- > C which is of course used universally?? Apart from the OOP included in E
- > which I would need C++ for.
-
- Mostly I like the clearer syntax, as it makes more sense than C, but,
- one of the big problems I think is support for other processors, and
- computers. Becasue E is a proprietry language, it`s not east to convert
- between other computers, and if you want to use different comps, then
- you need C++ - :(
-
- A big advantage is the pointer system, (once you get the hang of it :),
- as all variables are pointers, you don`t need to litter your source
- with & and * and . and ->.
-
- >
- > See you,
- >
- > Liz.
-
- Thanks.
- Andrew :)
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 10 Mar 1998 09:25:10 GMT
- From: jason@fsel.com (Jason Hulance)
- Subject: Re: GamesMasterSystem library
-
- Liz Tucker <tucks@pavilion.co.uk> wrote:
-
- > I am currently a Blitz Basic programmer but I was looking to move to C.
- >
- > However I have had the GMS library mentioned to me and try as I may, I
- > can`t get any of the included sources to link correctly.
-
- Isn't C fun? I guess you weren't using the same C compiler (or the same
- setup) as the programmer...
-
- > Then I read about the E support for the library so I decided to look at
- > the E language and I find that it compiles the GMS sources perfectly. :)
-
- Of course. There's only one implementation of E, so if it compiles for
- the programmer it'll (pretty much) always work for you.
-
- > 2. C and E appear very similar in syntax at first glance. What
- > advantages (and disadvantages if any) are there to using E as opposed to
- > C which is of course used universally?? Apart from the OOP included in E
- > which I would need C++ for.
-
- Disadvantages:
-
- o Amiga-specific
- o Few optimisations done by the compiler
- o Effectively no type checking
- o Doesn't split code into hunks (only an issue for large programs).
-
- Advantages:
-
- o Blisteringly fast at compiling
- o Small executables usually
- o Executables run as fast as you like (if you use in-line assembly
- and/or manual optimisation)
- o Simpler syntax than C (it looks a lot like Pascal/Modula-2).
- o Decent exception handling
- o Lots and lots of other things... (see E.guide in the Docs directory
- of the current distribution).
-
- Cheers!
-
- - --
- The conundrum for today is "oupfketlc".
- Your numbers are 50, 7, 2, 5, 2 and 3. The target value is 580.
- ======================================================================
- Jason R. Hulance Email: jason@fsel.com
- Formal Systems (Europe) Ltd Tel: [+44] (0)1865 728460
- 3 Alfred Street, Oxford OX1 4EH, UK Fax: [+44] (0)1865 201114
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Tue, 10 Mar 1998 12:49:52 +0000
- Subject: Re: GamesMasterSystem library
-
- > Disadvantages:
- >
- > o Amiga-specific
-
- True
-
- > o Few optimisations done by the compiler
-
- True... For those of us who don't know ASM, this is quite a
- problem... For sure, EC v3.4 will apply heavy optimisations to the
- code, making it way faster :)
-
- > o Effectively no type checking
-
- But this is a part of the language, isn't it ?
-
- > o Doesn't split code into hunks (only an issue for large programs).
-
- Why is better to split code in hunks ? (this is a question, I don't
- know what a "hunk" is)
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: jj@it.kth.se (Janne Johansson)
- Subject: Re: GamesMasterSystem library
- Date: Tue, 10 Mar 1998 13:02:14 +0100
-
- > > 2. C and E appear very similar in syntax at first glance. What
- > > advantages (and disadvantages if any) are there to using E as opposed to
- > > C which is of course used universally?? Apart from the OOP included in E
- > > which I would need C++ for.
- >
- > Disadvantages:
- >
- > o Amiga-specific
- > o Few optimisations done by the compiler
- > o Effectively no type checking
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Hey, wait a minute. This one is at the wrong side. ;-)
-
-
- > o Doesn't split code into hunks (only an issue for large programs).
- >
- > Advantages:
- >
- > o Blisteringly fast at compiling
- > o Small executables usually
- > o Executables run as fast as you like (if you use in-line assembly
- > and/or manual optimisation)
- > o Simpler syntax than C (it looks a lot like Pascal/Modula-2).
- > o Decent exception handling
-
- 8<
-
- - -------------
- "Every girl with sense, loves those dead
- presidents..." -Quireboys
-
- Mail: jj<at>it.kth.se
- Phone: +46-8-7521444 (work)
- Cell: +46-70-740 1440
- Http: //www.it.kth.se/~jj
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 10 Mar 1998 13:29:32 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: Re: GamesMasterSystem library
-
- > > o Few optimisations done by the compiler
- >
- > True... For those of us who don't know ASM, this is quite a
- > problem... For sure, EC v3.4 will apply heavy optimisations to the
- > code, making it way faster :)
-
- How do you know? Did Wouter say anything like that? And if so, is there
- any timeschedule for 3.4?
-
- > > o Effectively no type checking
- >
- > But this is a part of the language, isn't it ?
-
- Sure, but it makes it way easier to make big mistakes and not to find them
- easily. I hate it when I made a mistake which the compiler didn't find
- because of the lacking type checking and my machine goes to India.
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Tue, 10 Mar 1998 13:36:30 +0000
- Subject: Re: GamesMasterSystem library
-
- > How do you know? Did Wouter say anything like that? And if so, is
- > there any timeschedule for 3.4?
-
- I was just wondering/joking :) I didn't want to start a false rumour!
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 10 Mar 1998 14:01:29 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: Re: GamesMasterSystem library
-
- On Tue, 10 Mar 1998, Esteve Boix wrote:
-
- > > How do you know? Did Wouter say anything like that? And if so, is
- > > there any timeschedule for 3.4?
- >
- > I was just wondering/joking :) I didn't want to start a false rumour!
-
- Ok, got it :) Would be nice to have an optimize option nevertheless...
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 10 Mar 1998 13:10:51 GMT
- From: jason@fsel.com (Jason Hulance)
- Subject: Re: GamesMasterSystem library
-
- "Esteve Boix" <stv@minorisa.es> quoted and wrote:
-
- > > Disadvantages:
- > >
- > > o Amiga-specific
- >
- > True
- >
- > > o Few optimisations done by the compiler
- >
- > True... For those of us who don't know ASM, this is quite a
- > problem... For sure, EC v3.4 will apply heavy optimisations to the
- > code, making it way faster :)
-
- I wouldn't hold your breath. Wouter has said he thinks it *is* possible
- to add some optimisations to the compiler, but not with the current
- sources... (Hmmm... reminds me of another conversation I'm having with
- him at the moment...)
-
- > > o Effectively no type checking
- >
- > But this is a part of the language, isn't it ?
-
- Yes, and in some ways it's a big advantage. But people new to the
- language (like the person who asked the question) are likely to fall
- foul of it, especially if they've just learnt about the type safety in
- C...
-
- > > o Doesn't split code into hunks (only an issue for large programs).
- >
- > Why is better to split code in hunks ? (this is a question, I don't
- > know what a "hunk" is)
-
- The Amiga can support programs with their code split into little lumps.
- (Of course, the compiler has to be able to generate these lumps so that
- the program still works properly -- E plays safe and makes just the one
- lump.) A large program benefits a lot from this, because smaller pieces
- are more likely to fit into your Amiga's memory (since it's bound to be
- fragmented to a certain degree). Your program ends up scattered (in its
- little hunk lumps) in memory in the available slots.
-
- Say your program was 100Kb. If it's in one hunk then the Amiga needs to
- find a contiguous 100Kb lump of memory to load it into. This is less
- likely to be possible than finding ten 10Kb lumps of memory to fit ten
- 10Kb hunks into...
-
- The complexity for the compiler is to find a good strategy for dividing
- the program into hunks (for E, this would probably be at module
- boundaries), and to generate the correct code and information so that
- references between the hunks could be relocated. And I'm sure there are
- other problems, too.
-
- Cheers!
-
- - --
- The conundrum for today is "xoeimptne".
- Your numbers are 100, 4, 4, 9, 9 and 1. The target value is 906.
- ======================================================================
- Jason R. Hulance Email: jason@fsel.com
- Formal Systems (Europe) Ltd Tel: [+44] (0)1865 728460
- 3 Alfred Street, Oxford OX1 4EH, UK Fax: [+44] (0)1865 201114
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 10 Mar 1998 15:15:02 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: Re: GamesMasterSystem library
-
- On Tue, 10 Mar 1998, Jason Hulance wrote:
-
- > > > o Doesn't split code into hunks (only an issue for large programs).
- > >
- > > Why is better to split code in hunks ? (this is a question, I don't
- > > know what a "hunk" is)
- >
- > The Amiga can support programs with their code split into little lumps.
- > (Of course, the compiler has to be able to generate these lumps so that
- > the program still works properly -- E plays safe and makes just the one
- > lump.) A large program benefits a lot from this, because smaller pieces
- > are more likely to fit into your Amiga's memory (since it's bound to be
- > fragmented to a certain degree). Your program ends up scattered (in its
- > little hunk lumps) in memory in the available slots.
-
- E's simple compiler strategy isn't that bad in my opinion, you'll have
- less memory fragmentation, and with the compiler spitting out quite small
- executables (I don't think there is any E-executable >300K or so) I don't
- think this is so much of a drawback. Even Amiga users have around 4-8Megs
- standardly by now, and I don't think memory will be ever fragmented so
- badly that you don't have a 300K block left. By using an allocmem-patch
- (PoolMem, FragCure...) this risk can even be diminished further.
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 10 Mar 1998 14:39:52 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: GamesMasterSystem library
-
- On Tue, 10 Mar 1998, Esteve Boix wrote:
-
- =>> o Few optimisations done by the compiler
- =>
- =>True... For those of us who don't know ASM, this is quite a
- =>problem... For sure, EC v3.4 will apply heavy optimisations to the
- =>code, making it way faster :)
-
- Well, I ought to explain that if you disassemble E output (with adis or IRA or
- something) then feed it to POpt, it does make quite a good job. Obviously the
- compiler itself could do a *little* better (expression simplifying,
- constant-culling, more effective startup), but apart from that the compiler
- should be left alone for optimisation, as it is more an amiga-specific thing
- than a language thing. You'll only want backbreaking optimisation for the
- finished product, IMHO.
-
- =>> o Doesn't split code into hunks (only an issue for large programs).
- =>
- =>Why is better to split code in hunks ? (this is a question, I don't
- =>know what a "hunk" is)
-
- Well, basically, lots of code-hunks in an executable is *not* a desired effect,
- *BUT* a _reasonable_ amount of it _is_ a good thing. Mainly, it makes a
- 'large' program fit in memory easier, and it gives better output for debugging
- so you can see 'program bla failed, hunk 12 offset 3932' rather than 'program
- bla failed, hunk 0 offset 2929293283298329832'.
-
- Also, _I_ would like to see a better linker, as the current one is not very
- friendly - it demands that all dependancies are resolved at creation time, and
- it only allows one single code hunk. Bleeeargh. There should be code _and_ data
- hunks, so the data-hunk could be write-protected by debugging tools.
-
- And o2m is pants. I'd love to use E internal functions when writing
- super-optimised asm code, as the internal assembler of E is worse than useless.
- CMP A0,A1 is a 'bad addressing mode', for example, which it never has been and
- never will be, and then there's all the back-breaking uppercase, ... just to
- get the features that are allowed to E-compiled modules linked in, but NOT to
- o2m'ed modules linked in. But why should I flame o2m when it does an effective
- job itself?
-
- Only XDEFs allowed, no XREFs
- At most one relochunk expected
- Only hunk_code, hunk_ext and hunk_reloc32 allowed
-
- Anyway, one can do something like so:
-
- PROC main()
- DEF a4, a:PTR TO LONG
- a:=[
- 'stdout', {stdout},
- 'conout', {conout},
- 'stdin', {stdin},
-
- 'arg', {arg},
- 'wbmessage', {wbmessage},
-
- 'execbase', {execbase},
- 'dosbase', {dosbase},
- 'intuibase', {intuitionbase},
- 'gfxbase', {gfxbase},
- NIL]
-
- MOVE.L A4,a4
- WHILE a[] DO WriteF('\s=\d\n', a[]++, a[]++ - a4)
- ENDPROC
-
- This generates a handy include-file, so one can write
- move.l dosbase(a4),a6
- and such.
-
- I shouldn't really complain, after all there were people even back in 1989 who
- threw away Lattice C's startup, and wrote their own, and inserted call pragmas
- in the code directly, and saved 7kb (!!!) on the size of a 9kb executable. E
- isn't nearly as bad as those old C compilers. And I'd rather have E compile in
- seconds and only take up <1 disk for a binary distribution...
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht unterkriegen
- Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein Lager; Er trinkt
- ein Cider; Er singt die Lieder, die ihn; An die guten Zeiten erinnern; Er singt
- die Lieder, die ihn; An die besseren Zeiten erinnern
-
-
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Tue, 10 Mar 1998 14:47:32 +0500
- Subject: Re[2]: GamesMasterSystem library
-
- On Tue, 10 Mar 1998, we received a letter from about 'Re: GamesMasterSystem
- library':
-
- > > Disadvantages:
- > >
- > > o Amiga-specific
- >
- > True
- >
- > > o Few optimisations done by the compiler
- >
- > True... For those of us who don't know ASM, this is quite a
- > problem... For sure, EC v3.4 will apply heavy optimisations to the
- > code, making it way faster :)
- >
- > > o Effectively no type checking
- >
- > But this is a part of the language, isn't it ?
- >
- > > o Doesn't split code into hunks (only an issue for large programs).
- >
- > Why is better to split code in hunks ? (this is a question, I don't
- > know what a "hunk" is)
-
- Amiga executables are stored on disk as a serie of "hunks". Each hunk has a
- special header stating what type of hunk it is, and where it should be loaded/relocated.
- Most compiler will support multiple hunks, but EC only generates one big hunk
- containing everything.
-
- Two reasons for using multiple hunks:
-
- 1) Scatter-loading allow you to load a large file even though your memory might
- be fragmented. If you have 1 MB free and the largest blocks are only 200 KB
- free, a single-hunked 500 KB exe won't be able to load, but an exe with 5 hunks
- of 100 KB might load just fine.
-
- 2) Separating data, chipdata and code. That way, you can have the code into
- the fastest RAM available, and have any data needing ChipRAM directly loaded
- in ChipRAM by the OS (LoadSeg() handles that) instead of ending up in FastRAM
- and needing the programmer to manualy copy it to Chip (meaning slower, and wasting
- twice the memory). It is also cleaner to have the actual data separated from
- the actual code, can't say if there's any practical advantage there beside for
- the sake of clean programming techniques.
-
- Ciao!
-
-
-
- ... All I ask is a chance to prove than money can't make me happy.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Wed, 11 Mar 1998 04:28:11 +0500
- Subject: Re[3]: Freezing a process/task
-
- On Wed, 11 Mar 1998, we received a letter from about 'Re: Re[2]: Freezing a
- process/task':
-
- > I am not 100% sure, but I do think this is the case. A -128 task
- > will never get cpu, but I have no proof at this time that it
- > actually is that way. Guess it would say so in RKRM Libs or something
- > similar.
-
- - -128 is the same as -127 or -10 if you have no other tasks with a lower pri.
- The only thing Exec does with those taskpri is determine in which order it looks
- for who gets the next CPU timeslice.
-
- Stuff like Executive might handle them differently, but then, Executive is not
- the regular Exec scheduler.
-
-
-
- ... PATH=harddrive;drawer;desktop;pocket;boxincloset;boxunderdesk
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 11 Mar 1998 18:47:02 +0100
- From: gamboni@fastnet.ch (Jacques Gamboni)
- Subject: set WA_TrapRMB 'on the fly'
-
- Hello,
-
- they say in the RKRM that we can change the WA_TrapRMB flag when the
- window is already open,
- but that we must use assembly to change the flag directely. I don't know
- assembly, so could someone
- tell me how to do it?
- Note: the window is an mui window. In fact I always want RMB to be
- 'trapped' (I do not have menus),
- but Mui doesn't seem to allow to change this flag when the window is
- opened, so I thought to read
- MUI_Window_Window and then change that flag (just after having opened
- the window with set(window,
- MUIA_Window_Open,MUI_TRUE) ). There is maybe another way to do it?
-
- Maxime
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 11 Mar 1998 19:01:08 +0000
- From: tucks@pavilion.co.uk (Liz Tucker)
- Subject: Re: GamesMasterSystem library
-
- Hi Andrew,
-
- > What is the GMS library? And what does it do?
-
- It is a new library written for games programmers which in an Amiga
- library so it can, in theory, be called by any language but the only
- languages which are supported with includes and header files etc.
- so far are Asm, C and E.
-
- However I had problems compiling the C source examples as they wouldn`t
- link correctly which is why I have started to look at E.
-
- Thanks everyone for your replies to my initial question about E as a
- language in general.
-
- Check out http://gms.ethos.co.nz/gms/ for more info on GMS. The files
- are also available for download from Aminet.
-
- See you,
-
- Liz.
-
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- tucks@pavilion.co.uk
- 4437135@pager.mirabilis.com http://wwp.mirabilis.com/4437135
-
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
- Desktop Corruption - Team Leader http://deskcorruption.home.ml.org
- Email us at............ deskcorruption@thehub.u-net.com
- Current Project.......... Dafel:Bloodline
- """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 12 Mar 1998 12:15:22 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: ListView list handling
-
- Hi !
-
- I'm writing preferences for my MultiView - it is down cutted tooltype
- editor. All that I need is module for list handling with inserting node at
- requested position. Now I'm using listhandling module but it doesn't have
- inserting.
-
- Bye..
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: frosetti@hotmail.com ("Fabio Rosetti")
- Subject: Re: whatis.library
- Date: Thu, 12 Mar 1998 03:19:45 PST
-
- >
- >Did you write them a mail about this? ;)
- >
- >Well, thanks a lot, I'll try this out when I get home tonight.
- >
- >The reason why I want to use whatis.library is to determine the
- filetypes
- >of music modules for my slowly evolving tiny music player :) I think it
- >could be quite nice to not have to check filetypes by myself. I also
- use
- >the quite ingenious but abandoned BrowserII (which in turn uses
- >whatis.library) as my filemanager, so I already have proper filetypes
- for
- >everything...
- >
-
- Hi there!
-
- Maybe you should take a look at BFBPlayer.library. It's a library for
- playing modules of various formats. There is a user version
- (BFBPlayMasterU.lha) and a developer version (BFBPlayMasterD.lha) on
- aminet in mus/play.
-
- Well, Happy programming!
-
- Dennis
-
- PS!
- If this this mail looks screwed up, it's because I use Hotmail from
- Micro$oft.
-
-
-
- ______________________________________________________
- Get Your Private, Free Email at http://www.hotmail.com
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Thu, 12 Mar 1998 12:34:32 +0000
- Subject: Re: ListView list handling
-
- > Hi !
- >
- > I'm writing preferences for my MultiView - it is down cutted
- > tooltype
- > editor. All that I need is module for list handling with inserting
- > node at requested position. Now I'm using listhandling module but it
- > doesn't have inserting.
-
- Try the StringNode from AFC. It handles exec-lists of strings
- flawlessly :)
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 12 Mar 1998 11:37:41 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: whatis.library
-
- On Thu, 12 Mar 1998, Fabio Rosetti wrote:
-
- =>PS!
- =>If this this mail looks screwed up, it's because I use Hotmail from
- =>Micro$oft.
-
- First Hotmail started taking exceptionally long times for no reason, then it
- started having bad HTML on its pages, then it started taking days for mail to
- get through. It was only a few days after that, that I noticed 'from Microsoft'
- on it's front page.
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht unterkriegen
- Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein Lager; Er trinkt
- ein Cider; Er singt die Lieder, die ihn; An die guten Zeiten erinnern; Er singt
- die Lieder, die ihn; An die besseren Zeiten erinnern
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 12 Mar 1998 11:42:13 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: set WA_TrapRMB 'on the fly'
-
- On Wed, 11 Mar 1998, Jacques Gamboni wrote:
-
- =>MUIA_Window_Open,MUI_TRUE) ). There is maybe another way to do it?
-
- You may want to look up ModifyIDCMP() in intuition.
-
- Success = ModifyIDCMP( Window, newIDCMPFlags )
- D0 (V37) A0 D0
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht unterkriegen
- Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein Lager; Er trinkt
- ein Cider; Er singt die Lieder, die ihn; An die guten Zeiten erinnern; Er singt
- die Lieder, die ihn; An die besseren Zeiten erinnern
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 12 Mar 1998 13:04:31 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: GoldED and AmigaE
-
- Hi !
-
- I wrote two scripts for GoldED :
- ECompile.ged - compile and run
- EDebug.ged - compile and debug
-
- If you make an error than after compilation you will be in error line.
- If somebody wants them please write. I can send it tomorrow.
-
- Bye..
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 12 Mar 98 13:20:30 GMT
- From: muttley@lndn.tensor.pgs.com ("Muttley")
- Subject: Re: GoldED and AmigaE
-
- Hi,
-
- Yeah! I'd be interested in those scripts.
-
- All the best
-
- Muttley
-
- -----
- Muttley@london.pgs.com
- A1200(Towerized)/030/881, AmigaOS3.1, 2+32MB RAM, 2.6GB HDD, 24xCD-ROM
-
-
- ______________________________ Reply Separator _________________________________
- Subject: GoldED and AmigaE
- Author: <amigae-list@intercom.it> at Internet_London
- Date: 12/03/98 13:04
-
-
- Hi !
-
- I wrote two scripts for GoldED :
- ECompile.ged - compile and run
- EDebug.ged - compile and debug
-
- If you make an error than after compilation you will be in error line.
- If somebody wants them please write. I can send it tomorrow.
-
- Bye..
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
-
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 12 Mar 1998 11:57:14 +0100
- From: jhjelm@hem.passagen.se (Jonas Hjelm)
- Subject: MuiBuilder and AmigaE
-
- Is there anyone out there
- who use Muibuilder and AmigaE
- and makes program with locale-support?
-
- How do you do it?
-
- //helmet
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: a9660319@wlv.ac.uk
- Subject: Re: GamesMasterSystem library
- Date: Thu, 12 Mar 1998 14:36:01 +0000 (GMT)
-
- > It is a new library written for games programmers which in an Amiga
- > library so it can, in theory, be called by any language but the only
- > languages which are supported with includes and header files etc.
- > so far are Asm, C and E.
-
- YES!
- This appears to be exactly what I`m after! HA HA!!! (manic laugh!)
-
- Andrew :)
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: frank@cc86.org (Frank Weber)
- Date: Fri, 13 Mar 1998 17:33:52 +0100
- Subject: Re: MuiBuilder and AmigaE
-
- Hi Jonas,
-
- On 12-M=E4r-98 Jonas Hjelm wrote:
-
- >Is there anyone out there
- >who use Muibuilder and AmigaE
-
- well, I am using MUI and AmigaE, and if you really want to
- develop programs seriously, forget MUI-Builder and use the
- macros instead. This is what makes development *really* powerful.
-
- >and makes program with locale-support?
-
- Yes, I'm doing so, too (together with Cataloger v1.2). If you have any
- questions, just ask. :-)
-
- Bye
-
- Frank
- - --
- Frank Weber Email: frank@cc86.org
- 74076 Heilbronn URL: http://www.cc86.org/~frank/
- PGP key available on request
-
- Amiga Shareware: =B7 CDCat =B7 AFiloFaxPro =B7 AmigaTrainer =B7=
- Cheater
-
- MSG online crew member
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Fri, 13 Mar 1998 17:48:19 +0000
- Subject: Re: MuiBuilder and AmigaE
-
- > well, I am using MUI and AmigaE, and if you really want to
- > develop programs seriously, forget MUI-Builder and use the
- > macros instead. This is what makes development *really* powerful.
-
- Agree 100%... Use custom classes whenever possible.
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 13 Mar 98 18:06:28 +0100
- From: seasons@softhome.net (Lloyd Rosen)
- Subject: Programmers wanted
-
- Org: SEASONS / Lloyd Rosen
- Reply To: seasons@softhome.net
-
- Hi! I'll take my chance to write this in here, and I'll make it short.
-
- Seasons is a new team of people determined to continue supporting the
- Amiga with more quality productions. We're currently on the search of
- skilled programmers and pixelers. As I program AmigaE myself, I thought
- this can be an interesting place to look ;)
-
- Our main interests are games (preferably with net-support) and tools.
- Not many productions have found it's way out there, since we have only
- 3 programmers (2 AmigaE, 1 C/C++), but we also have two graphicians and 2
- musicians. (Plus some other people the cat dragged in ;)
-
- Our current MAIN project is another monkeyisland clone called Z-Files (which
- ofcourse is a parody of the well-known tv-series) that is programmed in E (and
- some Asm) - we're working on the demo now ("Pilot" :) which is going to be
- absolutely great! It will also be ported to (dare I say it) PC and Mac later.
- We could use some more artists for this project.
-
- In addition, we have some other projects that would involve more
- programmers.
-
- There is no salaries, I'm afraid - but you'll have a bit of fun anyway :)
-
- You don't need to reply here, just send a mail to:
-
- SEASONS@SOFTHOME.NET
-
- Thanks for the attention, and sorry for any inconvenience caused by this
- posting. :/
-
- ·<Lloyd Rosen>·-·<§EA§ON§>·-·<0x0/E/6502>·-·<SEASONS@SOFTHOME.NET>·
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sat, 14 Mar 1998 11:30:11 +0100
- From: gamboni@fastnet.ch (Jacques Gamboni)
- Subject: 3D-ViRGE programming
-
- I want to write games using the 3D-ViRGE chip of the Cybervision64-3d.
- Do someone know how to do it?
- Is there a module available that do it?
-
-
- Maxime
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: sanric@ronet.it (Riccardo Santato)
- Date: Fri, 13 Mar 1998 17:57:22 +0100
- Subject: Easygui backdrop
-
- Is there someone who can tell me how to put a bitmap in the backdrop of an
- easygui
- window as WBPattern does ?!?
-
- I've put a bitmap on an Intuition Screen. I want to keep it refreshed using
- the SetMask() function, but I've no examples on how to do this. Can anyone
- help me ?!?
-
- Thanx a lot !
-
-
- ==============================================
- Santato Riccardo
-
- sanric@ronet.it
- ==============================================
-
-
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 16 Mar 1998 12:11:38 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: 3D-ViRGE programming
-
- On Sat, 14 Mar 1998, Jacques Gamboni wrote:
-
- =>I want to write games using the 3D-ViRGE chip of the Cybervision64-3d.
- =>Do someone know how to do it?
- =>Is there a module available that do it?
-
- All I know is that Steffen Haeuser is adding 3D functions to his RTGMaster
- project, and if you were to use RTGMaster you would allow people with different
- cards still to run your programs (hopefully).
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 16 Mar 1998 16:35:08 +0100 (MET)
- From: s879@brems.ii.uib.no (Jan Ove Aase)
- Subject: libraries
-
- How can I find out more about the standard libraries included
- automatically when compiling. Like the graphics library. Show Module only
- tells med the name of the available functions, and how many arguments they
- take. Not what kind of argument (types).
-
- Still just a beginner...
- ____________________________________________________ _ _
- \___/
- Jan Ove Aase, Fantoft Stud.by, E-921, 5036 Fantoft (o o)__
- s879@ii.uib.no \_/\_ \
- janove@GalaxyCorp.com ___/) \
- http://www.GalaxyCorp.com/janove / ( _\
- ____________________________________________________ \ _// \\_/
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 16 Mar 1998 15:40:54 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: libraries
-
- On Mon, 16 Mar 1998, Jan Ove Aase wrote:
-
- =>How can I find out more about the standard libraries
-
- One word: Autodocs.
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Mon, 16 Mar 1998 16:51:20 +0000
- Subject: Re: libraries
-
- > How can I find out more about the standard libraries included
- > automatically when compiling. Like the graphics library. Show Module
- > only tells med the name of the available functions, and how many
- > arguments they take. Not what kind of argument (types).
-
- I'm not sure to understand you, but if you just want to know the
- version of the lib used by your program at runtime, you can open the
- lib with a version "0" and then check the version in the libbase
- object.
-
- Esteve
-
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 16 Mar 1998 17:46:37 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: Re: libraries
-
- On Mon, 16 Mar 1998, Jan Ove Aase wrote:
-
- > How can I find out more about the standard libraries included
- > automatically when compiling. Like the graphics library. Show Module only
- > tells med the name of the available functions, and how many arguments they
- > take. Not what kind of argument (types).
-
- You'd need the 'Includes & Autodocs' from (Commodore) Amiga Inc. The
- easiest and cheapest way to get them is to buy the Developer CD 1.1 from
- Schatztruhe in Germany. You'd also need the 'RKRM' manuals (at least the
- one titled 'Libraries'). They haven't been updated since OS 2.0 and I
- don't know whether they are still available.
-
- > Still just a beginner...
-
- Poses no problem, it's even tougher to be an Amiga beginner since there
- isn't an overwhelming bunch of literature about our computer in any
- bookstore.
-
- Anyway, I still think programming the Amiga is big fun, probably more than
- programming any other system, especially in E. The only OS which could
- be more fun to program on is BeOS (PPC and soon on Intel), but I haven't
- yet got the opportunity to check this out.
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 16 Mar 1998 19:46:16 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: Re: libraries
-
- On Mon, 16 Mar 1998, Ralph Debusmann wrote:
-
- - ->
- - ->You'd need the 'Includes & Autodocs' from (Commodore) Amiga Inc. The
- - ->easiest and cheapest way to get them is to buy the Developer CD 1.1 from
- - ->Schatztruhe in Germany. You'd also need the 'RKRM' manuals (at least the
- - ->one titled 'Libraries'). They haven't been updated since OS 2.0 and I
- - ->don't know whether they are still available.
-
- Try http://www.redrobe.demon.co.uk/amiga/ - autodocs in LZX archives.
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 17 Mar 1998 11:49:59 +0100 (MET)
- From: rade@coli.uni-sb.de (Ralph Debusmann)
- Subject: Re: libraries
-
- > ->You'd need the 'Includes & Autodocs' from (Commodore) Amiga Inc. The
- > ->easiest and cheapest way to get them is to buy the Developer CD 1.1 from
- > ->Schatztruhe in Germany. You'd also need the 'RKRM' manuals (at least the
- > ->one titled 'Libraries'). They haven't been updated since OS 2.0 and I
- > ->don't know whether they are still available.
- >
- > Try http://www.redrobe.demon.co.uk/amiga/ - autodocs in LZX archives.
-
- Wow, dark stuff :) Is this legal? Anyway, it's important that people know
- what they're hacking. I recall that the AsmOne 1.30 distribution by TFA
- also has the incs and autodocs within one of its archives...
-
- Ciao, Ralph
-
- - --
- Fachschaft CL, Geb. 17.3, Raum 6.03 (Keller), Tel.: 0681-302-4178
- HiWi im Projekt LISA, Geb. 17.3, Raum 1.11, Tel.: 0681-302-4496
- Homepage, http://www.coli.uni-sb.de/~rade
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 18 Mar 1998 08:57:05 +0100
- From: Fabio.Rotondo@deagostini.it (Fabio Rotondo)
- Subject: which CPU?
-
- Hi List,
-
- I am encountering problems in determining the CPU (020/030/040...)
- on user's machine.
- I have found a useful field in execbase (AttFlags), but I cannot work
- out how to find the right CPU...
- Any idea?
-
- Ciao,
-
- Fabio
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 18 Mar 1998 09:55:20 +0100
- From: i2683@www2.uportu.pt (Mark Marques)
- Subject: How to read a binary file ?
-
- Sorry for such a simple question but how can I read a binary file in E ?
- I am using the old EC3.2a and saw that particular ver has some problems
- with strings ... But I can't apply the patch .. :( ...
- Another dumb question is this line:
-
- DEF r,y[5]:STRING,buffer
-
- StrCopy(y,buffer)
- r:='$' + y
- a:=Val(r) correct ?
- Being "buffer" a binaryfile read into memory ...
- The above lines are call the Guru each time they are executed, but only if
- the file is a binary, it works good with ASCII and Text files
- I have a 68030, could that be the problem ?
-
- Mark ...
-
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 18 Mar 1998 08:39:22 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: which CPU?
-
- On Wed, 18 Mar 1998, Fabio Rotondo wrote:
-
- =>Hi List,
- =>
- => I am encountering problems in determining the CPU (020/030/040...)
- =>on user's machine.
- =>I have found a useful field in execbase (AttFlags), but I cannot work
- =>out how to find the right CPU...
- =>Any idea?
-
- PROC cpu()
- DEF flags
- flags:=execbase.attnflags -> if only execbase was typed
- IF flags AND AFF_68040 THEN RETURN 68040 -> 010,020,030,040 set
- IF flags AND AFF_68030 THEN RETURN 68030 -> 010,020,030 set
- IF flags AND AFF_68020 THEN RETURN 68020 -> 010,020 set
- IF flags AND AFF_68010 THEN RETURN 68010 -> 010 set
- ENDPROC 68000 -> none set
-
- or something like that
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Wed, 18 Mar 1998 03:48:19 +0500
- Subject: Re: which CPU?
-
- On Wed, 18 Mar 1998, we received a letter from about 'which CPU?':
-
- > Hi List,
- >
- > I am encountering problems in determining the CPU (020/030/040...)
- > on user's machine.
- > I have found a useful field in execbase (AttFlags), but I cannot work
- > out how to find the right CPU...
- > Any idea?
-
- >From ysInspector's code:
-
-
- EXPORT PROC getCPU()
- DEF cpu, flags
-
- flags := exec.attnflags
-
- IF (flags AND $80)
- cpu := 68060
- ELSEIF (flags AND AFF_68040)
- cpu := 68040
- ELSEIF (flags AND AFF_68030)
- cpu := 68030
- ELSEIF (flags AND AFF_68020)
- cpu := 68020
- ELSEIF (flags AND AFF_68010)
- cpu := 68010
- ELSE
- cpu := 68000
- ENDIF
- ENDPROC cpu
-
-
-
- ... I wanna die in my sleep like Daddy, not screaming like his passengers!
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Wed, 18 Mar 1998 03:59:38 +0500
- Subject: Re: How to read a binary file ?
-
- On Wed, 18 Mar 1998, we received a letter from about 'How to read a binary file
- ?':
-
- > Another dumb question is this line:
- >
- > DEF r,y[5]:STRING,buffer
- >
- > StrCopy(y,buffer)
- > r:='$' + y
- > a:=Val(r) correct ?
- > Being "buffer" a binaryfile read into memory ...
- > The above lines are call the Guru each time they are executed, but only if
- > the file is a binary, it works good with ASCII and Text files
- > I have a 68030, could that be the problem ?
-
- Reread the section on strings in the docs.
-
- r:='$' + y
-
- r will be equal to the address of the '$' element in your code. You will add
- to it the address of the y string, resulting in r being pointing to some random
- area of memory.
-
- If you want to manipulate strings, you MUST use the various string functions
- (StrCopy(), StrAdd(), StringF() will let you solve about any situation)
-
- If buffer is pointing to binary data, you will not be able to use string functions.
- You will have to do something like this:
-
-
- - - allocate a newbuffer with bufferlen +2 as an ARRAY OF CHAR
- - - set newbuffer[0] to '$'
-
- - - Read the binary file and store it at newbuffer+1 (will skip the first byte
- where you have '$' stored)
- OR
- - - Use CopyMem() to copy your binary buffer at newbuffer+1
- - - Set the last char in the newbuffer to NULL
-
- BTW if you shove binary data in there, then don't expect Val() to work properly.
- It will need ASCII, with a NULL-terminator. If you know for sure that you're
- reading an ASCII string, then:
-
-
- PROC blah(buffer:PTR TO CHAR)
- DEF result[10]:STRING
-
- StringF(result,'$\s',buffer)
- ENDPROC Val(result)
-
-
-
-
- ... Miracle worker, Doctor! I'm a dammit, not a jim... no scratch that...
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 18 Mar 1998 09:01:06 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: How to read a binary file ?
-
- On Wed, 18 Mar 1998, Mark Marques wrote:
-
- =>Sorry for such a simple question but how can I read a binary file in E ?
-
- Just use Read() like anyone else:
-
- - -> make a 2000-byte buffer and read up to 2000 bytes of data from 'myfile'
- - -> into this buffer.
- MODULE 'exec/memory'
-
- PROC main()
- DEF fh, buffer
- IF buffer:=AllocMem(2000, MEMF_PUBLIC)
- IF fh:=Open('myfile', OLDFILE)
- IF Read(fh, buffer, 2000)>=0
- bla(buffer)
- ENDIF
- Close(fh)
- ENDIF
- FreeMem(buffer, 2000)
- ENDIF
- ENDPROC
-
- PROC bla(poo:PTR TO CHAR) IS EMPTY -> or whatever
-
- The way you ask suggests you somehow want binary data held in STRING
- variables.
-
- If you wanted to copy those 2000 bytes into a STRING variable, something like
- this would work:
-
- PROC bla(poo:PTR TO CHAR)
- DEF fish:PTR TO CHAR
- IF fish:=String(2000)
- CopyMem(poo, fish, StrMax(fish)) -> copy no more than string can hold
- SetStr(fish, 2000) -> force the length of string to exactly 2000 bytes,
- -> regardless of any NIL bytes in the string
- ENDIF
- ENDPROC
-
- However, I do *not* recommend using the String functions of E to work on binary
- datas, as it is usually much more readable to use FOR loops and such to work on
- allocated buffers. A general rule is you should only use strings to represent
- strings of text!
-
- =>Another dumb question is this line:
- =>
- => DEF r,y[5]:STRING,buffer
- =>
- => StrCopy(y,buffer)
- => r:='$' + y
-
- 'r' becomes a pointer to where the text of 'y' is stored, plus the address of
- where a string containing '$' is stored, eg r := $393493E + $3700321, which
- makes a totally invalid address miles from anywhere, containing random and
- spurious data.
-
- => a:=Val(r) correct ?
-
- We then ask E to read what is at r. Crashcrashcrash.
-
- =>Being "buffer" a binaryfile read into memory ...
-
- I can't imagine why you'd want to use Val() on binary data, it is only meant
- for converting _text_ representations of numbers into actual numbers.
-
- Anyway, if you really do want ASCII considered as a hex value, then the 'right'
- way would be:
-
- - -> for example, buffer:='DEADFACE'
-
- DEF str[10]:STRING
- StringF(str, '$\s[8]', buffer); a:=Val(str)
-
- However, it looks suspiciously like you want the value of 4 bytes of memory,
- which is actually just
-
- a:=Long(buffer)
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: dissident@mail.telepac.pt (Roberto)
- Date: Tue, 17 Mar 1998 19:24:32 -0000
- Subject: Re: libraries
-
- On 17-Mar-98, Ralph Debusmann wrote:
- >> ->You'd need the 'Includes & Autodocs' from (Commodore) Amiga Inc. The
- >> ->easiest and cheapest way to get them is to buy the Developer CD 1.1 from
- >> ->Schatztruhe in Germany. You'd also need the 'RKRM' manuals (at least the
- >> ->one titled 'Libraries'). They haven't been updated since OS 2.0 and I
- >> ->don't know whether they are still available.
- >>
- >> Try http://www.redrobe.demon.co.uk/amiga/ - autodocs in LZX archives.
-
- >Wow, dark stuff :) Is this legal? Anyway, it's important that people know
- >what they're hacking. I recall that the AsmOne 1.30 distribution by TFA
- >also has the incs and autodocs within one of its archives...
-
- Actually, the RKRM's are also at the Asmone's site..
-
- - --
- rOBERTo ->dissident@mail.telepac.pt<- !wEb pAGe uNDEr cONSTRUCTIOn!
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: r.zimmerling@link-dd.cl.sub.de (Rene Zimmerling)
- Subject: Re: which CPU?
- Date: 19 Mar 1998 16:13:51 +0100
-
- merlin@thule.no (Eric Sauvageau) *schrieb* *am* 17.03.1998 *zu*
- Re: which CPU? *folgende* *Worte* :
-
- > On Wed, 18 Mar 1998, we received a letter from about 'which CPU?':
- >=20
- > > Hi List,
- > > =20
- > > I am encountering problems in determining the CPU (020/030/040..=
- .)
- > > on user's machine.
- > > I have found a useful field in execbase (AttFlags), but I cannot wor=
- k
- > > out how to find the right CPU...
- > > Any idea?
- >=20
- > >From ysInspector's code:
- >=20
- >=20
- > EXPORT PROC getCPU()
- > DEF cpu, flags
- >=20
- > flags :=3D exec.attnflags
- >=20
- > IF (flags AND $80)
- > cpu :=3D 68060
- > ELSEIF (flags AND AFF_68040)
- > cpu :=3D 68040
- > ELSEIF (flags AND AFF_68030)
- > cpu :=3D 68030
- > ELSEIF (flags AND AFF_68020)
- > cpu :=3D 68020
- > ELSEIF (flags AND AFF_68010)
- > cpu :=3D 68010
- > ELSE
- > cpu :=3D 68000
- > ENDIF
- > ENDPROC cpu
- >=20
-
- And MMU Checking ??
-
- - -- ____________
- __ / /
- Good Byte sagt Ren=E9 Zimmerling und MicroDot \ \/ / Amiga
- Member of Deutsche Amiga Software Schmiede \_\/ Rulez =20
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Thu, 19 Mar 1998 16:12:53 +0500
- Subject: Re[2]: which CPU?
-
- On Thu, 19 Mar 1998, we received a letter from about 'Re: which CPU?':
-
- > And MMU Checking ??
-
- Impossible to do with any reliability. The CPU itself has no register displaying
- if it has a working MMU, and just trying to use it isn't a good test either,
- as some EC030 chips have a half-working MMU, but got labeled as EC because the
- MMU proved defective during the production test runs.
-
-
-
- ... "You're gonna kill me? HA! Death: been there, done that!!!" - Sherridan.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: turrican@starbase.inka.de (Grundler Mathias)
- Date: Sat, 21 Mar 1998 18:51:13 +0100
- Subject: Re: Easygui backdrop
-
- Am 13-M=E4r-98 schrieb Riccardo Santato:
-
- >Is there someone who can tell me how to put a bitmap in the backdrop of =
- an
- >easygui
- >window as WBPattern does ?!?
-
- Try NewGUI, there`s a Option with which you can fill the Windows Backdrop=
-
- AND/OR Groups with Bitmaps or Patterns...
-
- >I've put a bitmap on an Intuition Screen. I want to keep it refreshed us=
- ing
- >the SetMask() function, but I've no examples on how to do this. Can anyo=
- ne
- >help me ?!?
-
- It is not good to draw to the screens bitmap directly, use a window (mayb=
- e
- a backdropwindow [borderless] instead!).
-
- You could refresh it with BlitBitMapRastPort() or so!
-
- BTW: NewGUI is available via AmiNet (dev/e)
-
- Hope i could help!
-
- - -- =
-
- ________ ______
- /__ __\ __________()_____ _\ / /\ turrican@starbase.inka.de
- \ //\/\\ _/\ _//\\ __//_\\ \/ \ THE DARK FRONTIER
- \//____\\/ \/ /__\\_//___\\/\_____\ Softwareentwicklung PD+Share
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 21 Mar 98 20:32:30 +0100
- From: a.milella@teseo.it ("Amedeo Milella")
- Subject: Brush2E
-
- Hi all,
-
- I need a program like BRUSH2E (the one I have doesn't work). May anyone help
- me?
-
- <tsb>
-
- Amedeo Milella - Amiga Group Italy (sez. Bari)
- AG Italia -> http://www.amyresource.it/AGI
-
- mailto:a.milella@teseo.it
-
- <tsb>
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Sat, 21 Mar 1998 14:58:41 +0500
- Subject: Re: Brush2E
-
- On Sat, 21 Mar 1998, we received a letter from about 'Brush2E':
-
- > Hi all,
- >
- > I need a program like BRUSH2E (the one I have doesn't work). May anyone help
- > me?
-
- And what does this program do exactly?
-
- If it takes an IFF brush and save it as E data, then have a look at ArtPro on
- Aminet. I use it to generate chunky data for penmap.image.
-
-
-
- ... Damage control is easy. Reading Klingon -- that's hard. -- Scotty
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: oeolsson@tmisnet.com (Ola Olsson)
- Subject: Screen Mode Requester
- Date: Sat, 21 Mar 1998 20:06:33 (-0800)
-
- Can anyone point me to an example of a screen mode requester that
- shows all available screens, and returns the chosen screen ID and /or
- other screen info to be used to open a screen. I've looked around but
- can only find routines to clone existing screens or open screens from
- scratch. Sorry if this is a dumb or obvious question.
-
- Thanks,
- Ola
-
- - --
- /**
- /** Ola Olsson
- /** oeolsson@tmisnet.com
- /** http://www.tmisnet.com/~oeolsson/
- /** --naive programmer--
- /**
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sun, 22 Mar 1998 12:36:14 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: I need sound.datatype examples.
-
- Hi !
-
- Now I'm writing sample player based on datatypes. For now I have GUI
- based on EasyGUI and I can set end of sample, frequency and volume but I
- don't know how to set start of sample other then 0.
- I checked my player with 8SVX, AIFF and Wave samples - it was ok.
- Protracker.datatype - I must work on it. But who knows how to play RAW
- samples using datatypes ? (making 8svx headers and newdtobject() from RAM ??)
-
-
- regards..
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 22 Mar 98 09:33:21 +0100
- From: a.milella@teseo.it ("Amedeo Milella")
- Subject: Re: Brush2E
-
- In date 21-Mar-98 10:58:41 Eric Sauvageau has wrote to amigae-list about Re:
- Brush2E
- ES> On Sat, 21 Mar 1998, we received a letter from about 'Brush2E':
-
- >> Hi all,
- >>
- >> I need a program like BRUSH2E (the one I have doesn't work). May anyon
- >> me?
-
- ES> And what does this program do exactly?
-
- ES> If it takes an IFF brush and save it as E data, then have a look at ArtPr
- ES> Aminet. I use it to generate chunky data for penmap.image.
-
- It's exactly what I need!! Tnx ;)
-
-
- <tsb>
-
- Amedeo Milella - Amiga Group Italy (sez. Bari)
- AG Italia -> http://www.amyresource.it/AGI
-
- mailto:a.milella@teseo.it
-
- <tsb>
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sun, 22 Mar 1998 18:35:07 +0100
- From: gamboni@fastnet.ch (Jacques Gamboni)
- Subject: confusion of AFC's MODULE and MUI
-
- Hello,
- I want to write a program using MUI (so I use the 'libraries/mui'
- MODULE)
- and also want to read a tooltype in the same program, using the
- 'afc/tool_type' MODULE.
- The problem is that Mui has a macro, get(), that allows reading an
- attribute of an object
- and the method used by tool_type to get a tool type is also get().
- So when I do a
-
- ttype.get('FLAG')
-
- the E compiler thinks I want to use the get() macro (from mui) and says
- I've a syntax error
- (one argument instead of the three needed by the get() macro)
-
- What should I do to get that tool type? Should I try to do it myself,
- without using AFC's
- module?
-
-
- Maxime
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 22 Mar 98 21:05:12 +0100
- From: fsoft@intercom.it (Fabio Rotondo)
- Subject: Re: confusion of AFC's MODULE and MUI
-
- On 22-Mar-98 18:35:07 Jacques Gamboni said about confusion of AFC's MODULE and MUI:
- >Hello,
- >I want to write a program using MUI (so I use the 'libraries/mui'
- >MODULE)
- >and also want to read a tooltype in the same program, using the
- >'afc/tool_type' MODULE.
- >The problem is that Mui has a macro, get(), that allows reading an
- >attribute of an object
- >and the method used by tool_type to get a tool type is also get().
- >So when I do a
-
- >ttype.get('FLAG')
-
- >the E compiler thinks I want to use the get() macro (from mui) and says
- >I've a syntax error
- >(one argument instead of the three needed by the get() macro)
-
- >What should I do to get that tool type? Should I try to do it myself,
- >without using AFC's
- >module?
-
-
- >Maxime
-
-
-
- Ciao,
-
- Fabio
-
- - --
- - ---------------------------+---------------------------------------------
- // | Fabio Rotondo e-mail: fsoft@intercom.it
- \\X/ Amiga. Feel The Power.| URL: (Amiga!) http://www.intercom.it/~fsoft
- +---------------+-- PGP Key avaible on demand --------------------------+
- |DOOPSI-GS V1.45| FinalDT V1.00 |Locator.library V1.10|FinalTyper V2.5 |
- |MIDIFilter V1.3|SafeLocks V1.00| GTBoxConvPro V1.00 |MIDIBridge V1.00 |
- | ReCatIt V2.50 | ARPrefs V1.70 | MouseFlasher V1.05 |WebFX V2.00 |
- +---------------+---- PIOS and pOS Developer ---------------------------+
- | ** Amiga Web Ring ** : http://www.intercom.it/~fsoft/awr.html |
- |Amiga Blast (Web Mag.!!!): http://www.intercom.it/~fsoft/ablast.html |
- |Amiga Foundation Classes : http://www.intercom.it/~fsoft/afc.html |
- +------------------ Amiga Group Italia (Novara) ------------------------+
-
- "Dumber than advertised!" - Yakko Warner
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: apejakov@online.no (Antun Pejakovic)
- Date: Sun, 22 Mar 1998 16:52:33 +0100
- Subject: MUI List
-
- Hi!
-
- My name is Antun and I am new to this mailing list. I used to program in
- pascal and C,
- but then I discovered E. The rest is history....
-
- Anyway, I'm working on a MUI prog, and I have a problem I was hoping somebody
- could help me with:
- Multi column lists and displayhooks.
-
- I know the basics about how it all works.
-
- ex.
-
- DEF lv1, dispHook:hook
- ...
-
- installhook(dispHook, {dispFunc})
- ...
-
- Child, lv1:=ListviewObject,
- MUIA_Listview_List, ListObject,
- InputListFrame,
- MUIA_List_DisplayHook, dispHook,
- MUIA_List_Format, 'COL=0 BAR, COL=2 BAR, COL=3',
- End,
- End,
- ...
-
- But then there is the function itself. There is an example in MUIdocs, but is
- in C.
- I was hoping someone could help me translate it to E.
- It goes somethig like this:
-
- dispFunk(_a1 char **array,_a1 struct Article *at)
- {
- *array++ = at->FromName;
- *array++ = at->FromPath;
- *array++ = at->ToName;
- *array++ = at->ToPath;
- *array++ = at->Date;
- *array = at->Subject;
- }
-
- The big ??? is (char **array).
-
- Any help is appreciated.
-
- Antun
-
-
-
- Antun-Pejakovic.---------------------
- apejakov@online.no -
- http://home.sol.no/~apejakov/ -
- -
- Amiga-Hotlist.--------------------------------
- http://home.sol.no/~apejakov/amigalink.html -
- -
- - ----------------------------------------------------->
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Sun, 22 Mar 1998 15:16:52 +0500
- Subject: Re: I need sound.datatype examples.
-
- On Sun, 22 Mar 1998, we received a letter from about 'I need sound.datatype
- examples.':
-
- > Hi !
- >
- > Now I'm writing sample player based on datatypes. For now I have GUI
- > based on EasyGUI and I can set end of sample, frequency and volume but I
- > don't know how to set start of sample other then 0.
- > I checked my player with 8SVX, AIFF and Wave samples - it was ok.
- > Protracker.datatype - I must work on it. But who knows how to play RAW
- > samples using datatypes ? (making 8svx headers and newdtobject() from RAM ??)
-
- RAW samples are just that: raw data samples. Meaning there's no header, so no
- way for you to recognize it via datatypes. When the user selects the "raw" option
- (or if you try to play it as RAW after being unable to recognize the format),
- you will probably have to deal directly with audio.device.
-
-
-
- ... BREAKFAST.COM Halted... Cereal port not responding.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 23 Mar 1998 09:52:26 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: Screen Mode Requester
-
- On Sat, 21 Mar 1998, Ola Olsson wrote:
-
- =>Can anyone point me to an example of a screen mode requester that
- =>shows all available screens, and returns the chosen screen ID and /or
- =>other screen info to be used to open a screen. I've looked around but
- =>can only find routines to clone existing screens or open screens from
- =>scratch. Sorry if this is a dumb or obvious question.
-
- E:Src/Gfx/TextureMapping/screenmodereq_db.e
-
- Also showmodule EModules:libraries/asl and see the fields you can access of
- the screenmoderequester object.
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 23 Mar 1998 09:59:15 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: <none>
-
- Recently I noticed something that is used in the official documentation and
- beginner's guide, but never actually explained:
-
- When writing exception handlers:
-
- EXCEPT
- means the exception handler is only run if you Raise()/Throw()
-
- EXCEPT DO
- means the exception handler is also run with exception=0 at the end of the
- procedure it is defined in
-
- Thus, silly things like:
-
- PROC main()
- ...
- Raise()
- EXCEPT
- ...
- ENDPROC
-
- can be replaced with EXCEPT DO instead of EXCEPT, and silly things like:
-
- PROC main()
- ...
- EXCEPT DO
- IF exception
- ...
- ENDIF
- ENDPROC
-
- can be replaced with EXCEPT instead of EXCEPT DO.
-
- Hopefully this unconfuses some people. It certainly unconfused me.
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: jj@it.kth.se (Janne Johansson)
- Subject: Re: <none>
- Date: Mon, 23 Mar 1998 11:08:00 +0100
-
- > Recently I noticed something that is used in the official documentation and
- > beginner's guide, but never actually explained:
-
- > Thus, silly things like:
- >
- > PROC main()
- > ...
- > Raise()
- > EXCEPT
- > ...
- > ENDPROC
-
- Wouldn't it be
-
- PROC main() HANDLE
-
- just to be extremly correct?
-
- - -------------
- "Every girl with sense, loves those dead
- presidents..." -Quireboys
-
- Mail: jj<at>it.kth.se
- Phone: +46-8-7521444 (work)
- Cell: +46-70-740 1440
- Http: //www.it.kth.se/~jj
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 23 Mar 1998 10:19:23 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: <none>
-
- On Mon, 23 Mar 1998, Janne Johansson wrote:
-
- =>Wouldn't it be
- =>
- =>PROC main() HANDLE
- =>
- =>just to be extremly correct?
-
- That too, the compiler would agree with you on that :)
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 23 Mar 1998 11:59:53 +0100
- From: ss37@irz301.inf.tu-dresden.de (Sven Steiniger)
- Subject: Re: MUI List
-
- > But then there is the function itself. There is an example in MUIdocs, but is
- > in C.
- > I was hoping someone could help me translate it to E.
- > It goes somethig like this:
- >
- > dispFunk(_a1 char **array,_a1 struct Article *at)
- > {
- > *array++ = at->FromName;
- > *array++ = at->FromPath;
- > *array++ = at->ToName;
- > *array++ = at->ToPath;
- > *array++ = at->Date;
- > *array = at->Subject;
- > }
- >
- > The big ??? is (char **array).
-
- That is an pointer to an array that contains pointer to
- strings :-)
-
- PROC dispFunk(arr:PTR TO LONG,at:PTR TO article)
- arr[]++ := at.fromName
- arr[]++ := at.fromPath
- arr[]++ := at.toName
- arr[]++ := at.toPath
- arr[]++ := at.date
- arr[] := at.subject
- ENDPROC
-
- - --
- Sven Steiniger
- (ss37@inf.tu-dresden.de - http://www.inf.tu-dresden.de/~ss37)
-
- And always remember: Heaven is not a place, it's a feeling.
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 23 Mar 1998 12:21:34 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: Re: I need sound.datatype examples.
-
- On Sun, 22 Mar 1998, Eric Sauvageau wrote:
-
- - ->> Now I'm writing sample player based on datatypes. For now I have GUI
- - ->> Protracker.datatype - I must work on it. But who knows how to play RAW
- - ->> samples using datatypes ? (making 8svx headers and newdtobject() from RAM ??)
- - ->
- - ->RAW samples are just that: raw data samples. Meaning there's no header, so no
- - ->way for you to recognize it via datatypes. When the user selects the "raw" option
- - ->(or if you try to play it as RAW after being unable to recognize the format),
- - ->you will probably have to deal directly with audio.device.
-
- I asked for method to change RAW -> 8SVX by adding 8svx headers in
- front of RAW data and then calling NewDTObject(take object form RAM
- please). Do I think correct ?? It will works or no ? This is my question.
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: oeolsson@tmisnet.com (Ola Olsson)
- Subject: Re: Screen Mode Requester
- Date: Mon, 23 Mar 1998 06:30:03 (-0800)
-
- On Mon, 23 Mar 1998 09:52:26 +0000 (GMT),
- "Stuart Caie \(kyz\)" <sac@csd.abdn.ac.uk> wrote about Re: Screen Mode
- Requester:
- > On Sat, 21 Mar 1998, Ola Olsson wrote:
- >
- > =>Can anyone point me to an example of a screen mode requester that
- > =>shows all available screens, and returns the chosen screen ID and /or
- > =>other screen info to be used to open a screen. I've looked around but
- > =>can only find routines to clone existing screens or open screens from
- > =>scratch. Sorry if this is a dumb or obvious question.
- >
- > E:Src/Gfx/TextureMapping/screenmodereq_db.e
- >
- > Also showmodule EModules:libraries/asl and see the fields you can access of
- > the screenmoderequester object.
-
- Thank you, I'll will look for those.
-
- - --
- /**
- /** Ola Olsson
- /** oeolsson@tmisnet.com
- /** http://www.tmisnet.com/~oeolsson/
- /** --naive programmer--
- /**
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 23 Mar 98 09:42:58 +0100
- From: seasons@softhome.net (Lloyd Rosen)
- Subject: AGF8
-
- w h a t ' s u p i n
-
- S E A S O N S
-
- issue 8
-
-
- HAS BEEN RENAMED TO
-
- A H E A D G R O O V E F A C T O R 8
-
- 23 Mar 1998 (09:37:32)
-
-
-
- Yeah! I've improved this newsletter to a totally and uttermost
- brainclashing experience - all for you! Just look at the slick and
- exclusive design! Have another sniff! Rub your eyes! Suck it in till you
- can't breathe! Digest it! Spit it out and stuff it in another way! Enjoy!
-
-
- Lister "Love is what separates us from the animals"
- Rimmer "No, Lister -- what separates us from animals is that we don't
- use our tongues to clean our genitals."
- -- Red Dwarf `Confidence & Paranoia'
-
-
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
-
- OFFICIAL & COMFIRMED MEMBERLIST AS OF TODAY
-
-
- "But, I just want to say, over the years, I have come to regard you
- as... people I met."
- - Rimmer, making his goodbyes in Red Dwarf `Holoship'
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
-
-
-
- -- In Chronological Order and Dolby Surround where available -
-
-
-
- Lloyd Rosen ..........NO.. Code, Music, Design, Main Organizing
- [seasons@softhome.net] IRC "LloydROSN"
- Asm, AmigaE, 6510, Basics, HMTL, Javascript,
- Floydmon, THX, DBPro
-
- Pluksel ..............NL.. Music, Design, Ascii, Sysop'ing
- [jazz@lobster.demon.nl] IRC "pluksel"
- THX, PT, Inform6, CED, /X
-
- Dr. Ice ..............NO.. Code, Sysop'ing, Co-Organizing A
- [kaarej@barentsnett.no] IRC "dRICE^SEA"
- AmigaE, HTML, ABBS
-
- Thundercat ...........NO.. Sysop'ing, Trading
- [mos@powertech.no] IRC "[-TC-]
- /X
-
- Tsar1 ................NO.. Graphics, Design, Ascii, Co-Organizing B
- [stamdal@online.no] IRC "Tsar1"
- ?
-
- By7ex ................NO.. Trading, Co-Sysop'ing
- [tom-rf@online.no] IRC "By7ex"
- Co-sys at "ParaZite" in Norway
-
- Soda .................NO.. Graphics, Main editing
- [retro@softhome.net] IRC "Soda^itc"
- Dpaint, maineditor "Retro" (Instinct)
-
- Cache ................UK.. Code
- [cachedtl@dial.pipex.com] IRC "Cache^DTL"
- Asm-One (?)
-
- Naig .................FI.. Code
- [jajoki@utu.fi] IRC "naig"
- SAS C, C++, Java
-
- Anakin ...............NL.. Graphics, Music, Code
- [mjk303@xs4all.nl] IRC "Anakin"
- SAS C, Asm, THX, Dpaint
-
- Bastian Frank ........DE.. Code
- [bhf@opf.de] IRC "Bastian"
- AmigaE, ...?
-
-
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
-
- C O M M U N I C A T I O N S
-
-
- Lister "Come on, what are you, a man or a munchkin?"
- Rimmer "I'm off to see the wizard, the wonderful wizard of Oz."
- -- Red Dwarf `Parallel Universe'
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
- Seasons Spamming List
- handled by Naig
- ('Sealist')
- [seasons@ecstacy.yok.utu.fi]
-
- - ÷ -
-
- Seasons Spanking Channel
- bot 'Cornell' handled by Anakin
- (not yet permanently up)
- [#seasons/IRCNet]
-
- - ÷ -
-
- Seasons Official Site
- handled by Lloyd and Pluksel
- (not yet up)
-
- [http:// ?]
-
- - ÷ -
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
-
- N E W S
-
-
- Rimmer "You? How did you get into art college?"
- Lister "The same way you always get into art college. The same old
- usual boring normal way everyone gets into art college. I
- failed my exams and applied... they snapped me up!"
- -- Red Dwarf `Thanks for the Memory'
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
- _Bastian Frank_ has joined from Germany. This is a guy with visions about
- how the Amiga should be. He's very much into OS programming - and buggered
- me somewhat to support gfxcards for ZF (which I ofcourse will now). He's
- studying computer science and is currently busy with different projects like
- a new taskbar (I know it doesn't sound cool - but it will be :), his own
- aguide replacement and . . . well - didn't get the info file yet.
-
- Bastesen here suggested that when we start some kind of major project, plan
- it a bit, write some lines of code and post the ideas to the Sealist so that
- the other members are able to come with ideas before the project is done.
-
- Well -- do that!
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
-
- S T A T U S R E P O R T S
-
-
- "Isn't it about this time your head goes back to the lab for re-tuning?"
- -- Rimmer to Kryten in Red Dwarf `The Last Day'
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
- These reports are a quite new thing, but all developers should send in these
- reports regularly, so we know who's doing what (avoid double projects) and
- who's free to boldly go where no man has gone before. Whenever you start,
- finish, cancel, release a new project - send me a note. If you're looking
- for something meaningful to do - send me a note. If your head aches - send
- me a note. On second thought -- do me a favour and don't do the latter. LR
-
-
-
- Who -------------- What -------------------------------------- Prog. -- Rel.
-
- Lloyd Rosen MADCAP Game System/Room Creator 60% no
- Zee Files Pilot (demo) 4 Rooms script/code 70% May
- Seasons Official Website 10% :) soon
- Taskbar ideas ?% ??
- Zenzer - puzzle game 0% :) ??
- Stockmarket '98 Preliminary MUI design 0% :) ??
-
- Pluksel ZF Pilot - script/music ? ---
- Zenzer - music ? ??
- Intro Thing - music ? ??
- (how about your inform game, plukkfisk? :)
-
- Dr. Ice Shakeratio - Status/Ratio door (ABBS) 100% 20.3
- THX-Ripper - THX Music System ripper 3.1 100% out
- TTVC - TeleText announcer prog (Norway only) ? ?
- StripMe/ReqMe/FindCopy (ABBS doors) ? ?
- Stockmarket '98 (4.0) main code 0% ?
-
-
-
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
- S E A S O N S @ S O F T H O M E . N E T
-
- Smoke me a kipper; skipper! I'll be back for breakfast!
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: apejakov@online.no (Antun Pejakovic)
- Date: Mon, 23 Mar 1998 19:24:45 +0100
- Subject: Re: MUI List
-
- On 23-Mar-98, Sven Steiniger wrote:
- >> But then there is the function itself. There is an example in MUIdocs, but
- >is
- >> in C.
- >> I was hoping someone could help me translate it to E.
- >> It goes somethig like this:
- >>
- >> dispFunk(_a1 char **array,_a1 struct Article *at)
- >> {
- >> *array++ = at->FromName;
- >> *array++ = at->FromPath;
- >> *array++ = at->ToName;
- >> *array++ = at->ToPath;
- >> *array++ = at->Date;
- >> *array = at->Subject;
- >> }
- >>
- >> The big ??? is (char **array).
-
- >That is an pointer to an array that contains pointer to
- >strings :-)
-
- > PROC dispFunk(arr:PTR TO LONG,at:PTR TO article)
- > arr[]++ := at.fromName
- > arr[]++ := at.fromPath
- > arr[]++ := at.toName
- > arr[]++ := at.toPath
- > arr[]++ := at.date
- > arr[] := at.subject
- > ENDPROC
-
- Thanks, now I understand.
- I got my first diplayhook working today based on this ex.
-
- YAHOO!!!
-
-
- Antun
-
-
- - --
-
- Antun-Pejakovic.---------------------
- apejakov@online.no -
- http://home.sol.no/~apejakov/ -
- -
- Amiga-Hotlist.--------------------------------
- http://home.sol.no/~apejakov/amigalink.html -
- -
- - ----------------------------------------------------->
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 23 Mar 1998 18:33:41 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: MUI List
-
- =>>> The big ??? is (char **array).
-
- =>>That is an pointer to an array that contains pointer to
- =>>strings :-)
-
- I might add a tuppence and say that (char *bla[]) is always preferable to
- (char **bla) - why would anyone ever use char ** anymore?
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Mon, 23 Mar 1998 16:34:31 +0500
- Subject: Re[2]: I need sound.datatype examples.
-
- On Mon, 23 Mar 1998, we received a letter from about 'Re: I need sound.datatype
- examples.':
-
- > On Sun, 22 Mar 1998, Eric Sauvageau wrote:
- >
- > ->> Now I'm writing sample player based on datatypes. For now I have GUI
- > ->> Protracker.datatype - I must work on it. But who knows how to play RAW
- > ->> samples using datatypes ? (making 8svx headers and newdtobject() from RAM ??)
- > ->
- > ->RAW samples are just that: raw data samples. Meaning there's no header, so no
- > ->way for you to recognize it via datatypes. When the user selects the "raw" option
- > ->(or if you try to play it as RAW after being unable to recognize the format),
- > ->you will probably have to deal directly with audio.device.
- >
- > I asked for method to change RAW -> 8SVX by adding 8svx headers in
- > front of RAW data and then calling NewDTObject(take object form RAM
- > please). Do I think correct ?? It will works or no ? This is my question.
-
- You have no idea what's the right frequency as one. Also, RAW can be 8-bits
- like it can also be 16-bits. So RAW playback will have to be done by you, with
- the user-supplied parameters (you'd probably default to something like 8-bits
- 10 KHz when no parameter is defined). Not mentioning that converting to 8SVX
- would probably be slow and memory-consuming, depending how different 8SVX data
- is from RAW data.
-
-
-
-
-
- ... "Next time, I'LL park the ship" - Picard to Riker, next to saucer's wreck.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: misha@friko2.onet.pl (Michal Durys)
- Date: Mon, 23 Mar 1998 13:42:48 +0100
- Subject: Re: I need sound.datatype examples.
-
- On 23-Mar-98 Marcin Juszkiewicz \(Szczepan/BlaBla\) generated such
- output:
- > I asked for method to change RAW -> 8SVX by adding 8svx headers in
- > front of RAW data and then calling NewDTObject(take object form RAM
- > please). Do I think correct ?? It will works or no ? This is my
- question.
-
- It is possible to convert RAW sample to 8SVX, but there's no sense in
- doing this. But if I tried to do this I would make it as follows:
- =B7 input frequency from user
- =B7 open file and write it to RAM: as a IFF 8SVX using iffparse.library
- =B7 play the 8SVX file =
-
- =B7 cleanup
- It should work, but I belive that it is a very lame way to achieve
- your goal. =
-
-
- - -- =
-
- +-Misha/El Condor Software-------------misha@friko2.onet.pl
- | A1200T / '040 / 34 MB RAM / 850 MB HDD / 4x CD / USR 33.6 =
-
- +--------------Life starts at '030, impotence starts at '86
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 25 Mar 1998 09:50:57 +0100
- From: i2683@www2.uportu.pt (Mark Marques)
- Subject: Still binary file problem...
-
- Despite the fact that with the help of the previous Emails I solved my
- initial problem I still have some difficulty regarding the same problem with
- a binary file...
- How can I avoid the use of the Char() function to get a letter one by one
- and then make an Array of Char, to "simulate" a string ?
- The other problem is regarding StringF(), It works once but at the second
- call it does not write in the correct Estring ...
- Example: StringF(a,'\c',buffer[11])
- WriteF('\c', a) ---> in this case should appear an "D" in the
- stdout, but what appears is an "0" ...
- Of course buffer is a Binary file...
- if I do something like this :
- WriteF('\c', buffer[11]) --> it gives the expected "D" as supposed to.
-
-
- By using an HexEditor (DiskMon, FileX) applied to the file, I can see all
- the text in the ASCII side ...
- What I am doing wrong ?
- How can I convert Hex codes to ASCII ?
-
- Do I have to use CopyMem or something instead of StringF() ?
-
-
- Mark Marques
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: kolo8@ely.pg.gda.pl (Piotr Gapinski)
- Date: Wed, 25 Mar 1998 12:12:40 +0100
- Subject: Re: Still binary file problem...
-
- Dnia 25-Mar-98, Mark Marques napisa=EE(a):
- >How can I avoid the use of the Char() function to get a letter one by on=
- e
- >and then make an Array of Char, to "simulate" a string ?
- >The other problem is regarding StringF(), It works once but at the secon=
- d
- >call it does not write in the correct Estring ...
- >Example: StringF(a,'\c',buffer[11])
- > WriteF('\c', a) ---> in this case should appear an "D" in the
- >stdout, but what appears is an "0" ...
- try
- StringF(a,'\c',buffer+11)
- WriteF('\c',a)
-
- Pozdrawiam,
- - -----///-----------------------
- Piotr Gapinski
- mailto: kolo8@ely.pg.gda.pl
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 25 Mar 1998 12:30:30 +0100 (MET)
- From: subvcbhd@calvados.zrz.TU-Berlin.DE (Henk Jonas)
- Subject: Re: Still binary file problem...
-
- On Wed, 25 Mar 1998, Piotr Gapinski wrote:
-
- > Dnia 25-Mar-98, Mark Marques napisa=EE(a):
- > >How can I avoid the use of the Char() function to get a letter one by on=
- e
- > >and then make an Array of Char, to "simulate" a string ?
- > >The other problem is regarding StringF(), It works once but at the secon=
- d
- > >call it does not write in the correct Estring ...
- > >Example: StringF(a,'\c',buffer[11])
- > > WriteF('\c', a) ---> in this case should appear an "D" in the
- > >stdout, but what appears is an "0" ...
- This happens cause a is not a char, but a pointer to char (or Estring).
-
- > try
- > StringF(a,'\c',buffer+11)
- ^buffer+11 its a pointer to char, buffer[11] is the
- char, and for \c you need a char
-
- > WriteF('\c',a)
- ^you need a char, but "a" is a pointer to char
-
- try better:
-
- a:=3DString(1)
- StringF(a,'\c',buffer[11])
- WriteF('\s',a)
-
- or
-
- WriteF('\c',buffer[11])
-
- - ----------------------------------------------------------------
- Henk Jonas | subvcbhd@linux.zrz.tu-berlin.de
- Student der |
- Energietechnik | http://www.cs.tu-berlin.de/~jonash
-
- > Ich lehne Atomenergie als Energiealternative ab! niX=B3 Castor <
- - ----------------------------------------------------------------
- * AmigaMetaFileFormat * MetaView * Messlabor * Voxelflight *
- - ----------------------------------------------------------------
- Fuer die 'Mitleser': ANARCHIEBNDAKWPKKRAFRADIKALTNTKPDPDSREVOLUT
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 25 Mar 1998 12:59:39 +0100
- From: ss37@irz301.inf.tu-dresden.de (Sven Steiniger)
- Subject: Re: Still binary file problem...
-
- > By using an HexEditor (DiskMon, FileX) applied to the file, I can see all
- > the text in the ASCII side ...
- > What I am doing wrong ?
- > How can I convert Hex codes to ASCII ?
- >
- > Do I have to use CopyMem or something instead of StringF() ?
-
- I am new on this list, so I haven't read your previous
- mails.
- I suppose you wanna read an file an display it as an text
- or string, right?
- Then try the following:
-
- RAISE "MEM" IF String()=NIL,
- "OPEN" IF Open()=NIL
-
- /* Makes an estring from an file.
- ** Returns the estring or NIL on error.
- */
- PROC file2string(name:PTR TO CHAR) HANDLE
- DEF fh=NIL, stri=NIL, len
-
- len:=FileLength(name)
- IF len<=0 THEN Raise("read") -> Does file exists
- ?
- stri:=String(len+1) -> Allocate new
- string
- fh:=Open(name, MODE_OLDFILE) -> Open file
- IF Read(fh, stri, len)<>len THEN Raise("read") -> read file into
- string
- stri[len+1]:='\0' -> add zero byte
- SetStr(stri, len) -> set the new
- string length
-
- EXCEPT DO
- Close(fh)
- IF exception
- -> error, clean up
- DisposeLink(stri)
- stri:=NIL
- ENDIF
- ENDPROC stri
-
-
- - --
- Sven Steiniger
- (ss37@inf.tu-dresden.de - http://www.inf.tu-dresden.de/~ss37)
-
- And always remember: Heaven is not a place, it's a feeling.
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: kolo8@ely.pg.gda.pl (Piotr Gapinski)
- Date: Wed, 25 Mar 1998 13:16:08 +0100
- Subject: Re: Still binary file problem...
-
- Dnia 25-Mar-98, Henk Jonas napisa=EE(a):
- >On Wed, 25 Mar 1998, Piotr Gapinski wrote:
-
- >> Dnia 25-Mar-98, Mark Marques napisa=EE(a):
- >> try
- >> StringF(a,'\c',buffer+11)
- > ^buffer+11 its a pointer to char, buffer[11] is the
- >char, and for \c you need a char
- yes, u right
-
- >> WriteF('\c',a)
- > ^you need a char, but "a" is a pointer to char
-
- look at this:
- PROC main()
- DEF a[10]:STRING, buffer:PTR TO CHAR
-
- buffer:=3D'testptrtochar'
- StringF(a,'\c',buffer[4])
- ->- WriteF('a =3D \c\n',a) this does't work!!!!
- WriteF('a =3D \c\n',a[]) this work fine (for me)
- ENDPROC
-
- Pozdrawiam,
- - -----///-----------------------
- Piotr Gapinski
- mailto: kolo8@ely.pg.gda.pl
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: a9660319@wlv.ac.uk
- Subject: Nil terminated lists... (more pointer stuff...)
- Date: Wed, 25 Mar 1998 12:33:51 -0500 (EST)
-
- Hi there list!
-
- Me again. This time, it`s NIL terminated lists, and OO.
-
-
- Okay, this is what I`m doing:
-
- OBJECT vector
- x:INT
- y:INT
- z:INT
- ENDOBJECT
-
- OBJECT face
- vectorlist[4]:ARRAY OF vector
- fdirec:LONG
- /* This is where I think I`m going wrong, as vectorlist[] is an array
- of PTRS, but fdirec holds a value, should I put fdirec up in the vector
- object, but I`d like it down in facelist, as it makes more sense there!
- */
- ENDOBJECT
-
- OBJECT facelist
- next:PTR TO facelist
- face:PTR TO face
- ENDOBJECT
-
- OBJECT structure
- head:PTR TO facelist
- curr:PTR TO facelist
- ENDOBJECT
-
- DEF b[10]:ARRAY OF structure
-
- PROC main()
- NEW b
- loadstruc(1)
- ENDPROC
-
- PROC insert(cbuild, face:PTR TO face, fdirec, ptype=3, pri=0, colour=1) OF structure
- /* insert sticks an entry onto the list. */
- DEF temp:PTR TO facelist, n
-
- temp:=NewR(SIZEOF facelist)
- temp.face:=NewR(SIZEOF face)
-
- /* Are these NewR()`s Okay? will they give me the right amount of
- memorey? */
-
- temp.face.fdirec:=fdirec
-
- FOR n:=0 TO 3 -> Copy into array.
- temp.face.vectorlist[n].x:=face.vectorlist[n].x
- temp.face.vectorlist[n].y:=face.vectorlist[n].y
- temp.face.vectorlist[n].z:=face.vectorlist[n].z
- ENDFOR
-
- IF self[cbuild].head<>NIL
- temp.next:=self[cbuild].head
- ELSE
- temp.next:=NIL
- ENDIF
-
- self[cbuild].head:=temp
- ENDPROC
-
- PROC loadstruc(cbuild)
- DEF face:face
-
- b.init(cbuild)
-
- face.vectorlist[0].x:=10
- face.vectorlist[0].y:=20
- face.vectorlist[0].z:=30
-
- b.insert(cbuild, face, 2)
-
- face.vectorlist[0].x:=-110
- face.vectorlist[0].y:=-120
- face.vectorlist[0].z:=-130
-
- b.insert(cbuild, face,3)
-
- face.vectorlist[0].x:=210
- face.vectorlist[0].y:=220
- face.vectorlist[0].z:=230
-
- b.insert(cbuild, face,4)
- ENDPROC
-
- PROC init(cbuild) OF structure
- self[cbuild].head:=NIL
- self[cbuild].curr:=NIL
- ENDPROC
-
- Sorry to just dump this lot on you, but I`ve already simplified it a
- lot, and the book I was using dosn`t cover this bit (it`s in C++)
- But for some reason this code causes errors, it dosn`t cause an
- enforcer hit, but it is doing GBH to the memorey, as when I run the
- same routine, but with a more intensive loadstruc() as soon as I move a
- window the machine crashes, etc...
-
- So, what am I doing wrong? This problem has been driving me nuts for
- several weeks now!
-
- Again, sorry for making this so long.....
-
- Andrew Hutchins :)
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 25 Mar 1998 13:49:35 +0100
- From: Fabio.Rotondo@deagostini.it (Fabio Rotondo)
- Subject: Re: Nil terminated lists... (more pointer stuff...)
-
- a9660319@wlv.ac.uk wrote:
-
- > DEF b[10]:ARRAY OF structure
- >
- > PROC main()
- > NEW b
-
- This is wrong!!! You should not init with NEW an array... instead:
-
- DEF bb:PTR TO structure
-
- NEW bb.structure() -> is there any constructor for this class??
-
- b[0]:=bb -> this is ok
-
- Look, your code seems to need some OOP shakering :-)
-
- > PROC insert(cbuild, face:PTR TO face, fdirec, ptype=3, pri=0, colour=1) OF structure
- > /* insert sticks an entry onto the list. */
- > DEF temp:PTR TO facelist, n
- >
- > temp:=NewR(SIZEOF facelist)
- > temp.face:=NewR(SIZEOF face)
- >
- > /* Are these NewR()`s Okay? will they give me the right amount of
- > memorey? */
-
- Yes, but it's better this:
-
- NEW temp
- NEW temp.face
-
-
- > So, what am I doing wrong? This problem has been driving me nuts for
- > several weeks now!
-
- There are some problems in memory allocation, as far as I can see,
- more: you should not declare an "array" of structure, a list is better.
- Try the NodeMaster from the AFC distribuition.
-
- Ciao,
-
- Fabio
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: a9660319@wlv.ac.uk
- Subject: re: Re: Nil terminated lists... (more pointer stuff...)
- Date: Wed, 25 Mar 1998 13:43:25 -0500 (EST)
-
- Fabio Rotondo wrote:
- > a9660319@wlv.ac.uk wrote:
- >
- > > DEF b[10]:ARRAY OF structure
- > >
- > > PROC main()
- > > NEW b
- >
- > This is wrong!!! You should not init with NEW an array... instead:
-
- Oops! I knoew it was going to be something stupid like this :)
-
- > DEF bb:PTR TO structure
- >
- > NEW bb.structure() -> is there any constructor for this class
-
- Um.. No, it`s not a class per se, it`s just convenient to use the class
- system for now, and when I`m ready to move it over into a proper full
- blown class, it`s already half way there. And besides, these routines
- are not for public consumption :)
-
- >
- > b[0]:=bb -> this is ok
-
- Ah! I get it now! b[0] will now be a PTR TO structure, and I can access
- as before...
-
- > Look, your code seems to need some OOP shakering :-)
-
- Umm. Whats that? :)
-
- > > temp:=NewR(SIZEOF facelist)
- > > temp.face:=NewR(SIZEOF face)
- > >
- > > /* Are these NewR()`s Okay? will they give me the right amount of
- > > memorey? */
- >
- > Yes, but it's better this:
- >
- > NEW temp
- > NEW temp.face
-
- Yea, but I`ve been using NewR() so that I learn exactly what it`s
- doing, NewR() has only one function, wheras NEW can have a few. Is it
- okay to continue using NewR() for mem allocation ala above? If it is,
- then I`ll use NewR() as it keeps the code clear at exactly what I`m
- doing (speed isn`t an issue in these routines).
-
- > > So, what am I doing wrong? This problem has been driving me nuts for
- > > several weeks now!
- >
- > There are some problems in memory allocation, as far as I can see,
- > more: you should not declare an "array" of structure, a list is better.
-
- So, the b[0] thing above, although it works is still probably a bad
- idea, right? I was just thinking that. Dosn`t DEF b[MAX]:ARRAY OF
- structure grab a bunch of memorey. So it dosn`t make sense to then use
- it as a bunch of Pointers.
-
- A list might be better, but I want quick, unambiguous access to a
- certain structure,
-
- eg/ b[1] contains the data for a house, and b[2] contains the 3d data
- for a fence. Then, a master array, when it wants a house just says, go
- and get b[1] when you want the house data.
-
- I suppose I could do this with pointers though... (sorry, I`m thinking
- aloud.)
-
- > Try the NodeMaster from the AFC distribuition.
-
- I`m impressed by the AFC, but I need to be able to do this for myself...
- Sorry to be so stubborn :)
-
- > Ciao,
- >
- > Fabio
- >
-
- Thanks a lot, you`ve helped already!
-
- Andrew :)
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Wed, 25 Mar 1998 14:44:41 +0100 (MET)
- From: subvcbhd@calvados.zrz.TU-Berlin.DE (Henk Jonas)
- Subject: Re: Still binary file problem...
-
- On Wed, 25 Mar 1998, Piotr Gapinski wrote:
-
- > look at this:
- > PROC main()
- > DEF a[10]:STRING, buffer:PTR TO CHAR
- >=20
- > buffer:=3D'testptrtochar'
- > StringF(a,'\c',buffer[4])
- > ->- WriteF('a =3D \c\n',a) this does't work!!!!
- again, a is only the pointer and \c want the char self
-
- > WriteF('a =3D \c\n',a[]) this work fine (for me)
- [] reference at the first item (char, cause it is a string) of the pointer
-
- > ENDPROC
-
- - ----------------------------------------------------------------
- Henk Jonas | subvcbhd@linux.zrz.tu-berlin.de
- Student der |
- Energietechnik | http://www.cs.tu-berlin.de/~jonash
-
- > Ich lehne Atomenergie als Energiealternative ab! niX=B3 Castor <
- - ----------------------------------------------------------------
- * AmigaMetaFileFormat * MetaView * Messlabor * Voxelflight *
- - ----------------------------------------------------------------
- Fuer die 'Mitleser': ANARCHIEBNDAKWPKKRAFRADIKALTNTKPDPDSREVOLUT
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: GIMBO@pulse-service.co.uk (Dexter's Music Lab)
- Date: Wed, 25 Mar 1998 17:05:22 +0000
- Subject: Dynamic String problem
-
- /*This whole mail from here down should be compilable...
-
- Okay, here's a fun one. I've got two dynamically allocated estrings,
- which I'm being naughty and storing binary data in. I'm assigning
- into them as if they're arrays, and calling SetStr() to set the
- length, as advised in the Beginner's Guide.
-
- It all looks OK until I try to add the contents of 'header' into
- (the currently empty) 'message'... StrAdd() seems to only copy 2
- elements, rather than 5.
-
- So come on, what am I doing wrong? :-) The code should compile and
- run as is.
-
- Thanks!
-
- By the way, I'm using strings instead of arrays because strings keep
- track of their own length (in my app I need to pass references to
- these babies around quite a lot, so I'm trying to tidy things up a bit).
-
- Any and all advice appreciated... :-)
-
- Andy
- */
-
- PROC main() HANDLE
- DEF message : PTR TO CHAR
- DEF header : PTR TO CHAR
-
- message := String(100) -> allocate memory for 'message'
- IF (message = NIL) THEN Raise(1) -> and check it
- StrCopy(message , '') -> not necessary to initialise?
- -> only did it out of desperation! :-)
- header := String(5)
- IF (header = NIL) THEN Raise(1)
-
- StrCopy(header , '') -> again, just a desperate attempt to
- -> initialise things nicely
-
- WriteF('Header length before: \d\n' , EstrLen(header)) -> it's 0
-
- -> Want to build header one element at a time, so treat it as an array
- -> This data relates to MIDI, but it could be anything, right?
- header[0] := $F0
- header[1] := $41
- header[2] := $00
- header[3] := $46
- header[4] := $12
-
- -> Now need SetStr() to set length properly, as advised in Beginner's
- SetStr(header , 5)
- WriteF('Header length after: \d\n' , EstrLen(header)) -> it's 5
-
- -> At this point things look good in edbg
-
- WriteF('create_header() returns length: \d\n' , EstrLen(header)) -> 5
- WriteF('message before is length: \d\n' , EstrLen(message)) -> 0
-
- StrAdd(message , header , ALL)
- -> Only first two elements are copied across, as seen in edbg
-
- WriteF('message after is length: \d\n' , EstrLen(message)) -> 2!!!
-
- -> WHY IS IT 2??? WHY DOESN'T IT COPY ALL 5 ELEMENTS OF HEADER???
-
- EXCEPT DO
- IF (message) THEN DisposeLink(message)
- IF (header) THEN DisposeLink(header)
- ENDPROC
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 26 Mar 1998 10:00:58 +0100
- From: Fabio.Rotondo@deagostini.it (Fabio Rotondo)
- Subject: Re: Dynamic String problem
-
- Dexter's Music Lab wrote:
-
- Andy,
-
- you little guy has made a silly mistake...
-
- > -> Want to build header one element at a time, so treat it as an array
- > -> This data relates to MIDI, but it could be anything, right?
- > header[0] := $F0
- > header[1] := $41
- > header[2] := $00
-
- Look: third char is 0!!!
-
- > StrAdd(message , header , ALL)
- > -> Only first two elements are copied across, as seen in edbg
- >
- > WriteF('message after is length: \d\n' , EstrLen(message)) -> 2!!!
-
- Try replacing StrAdd with a cutom routine of your own which does not stop on a
- "0" char,
- but after all the EstrLen()
-
- Ciao,
-
- Fabio
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: GIMBO@pulse-service.co.uk (Dexter's Music Lab)
- Date: Thu, 26 Mar 1998 09:18:19 +0000
- Subject: Re: Dynamic String problem
-
- > Andy,
- >
- > you little guy has made a silly mistake...
- >
- > > -> Want to build header one element at a time, so treat it as an array
- > > -> This data relates to MIDI, but it could be anything, right?
- > > header[0] := $F0
- > > header[1] := $41
- > > header[2] := $00
- >
- > Look: third char is 0!!!
-
- D'OH!
-
- *Slaps forehead in amazement*
-
- Thanks Fabio! From now on, the E community may address me as "Drongo,
- King of All Stupid Mistakes".
-
- Well, not really.
-
- > > StrAdd(message , header , ALL)
- > > -> Only first two elements are copied across, as seen in edbg
- > >
- > > WriteF('message after is length: \d\n' , EstrLen(message)) -> 2!!!
- >
- > Try replacing StrAdd with a cutom routine of your own which does
- > not stop on a "0" char, but after all the EstrLen()
-
- Yep, I'll give that a go. Thanks!
-
- Andy
- - --
- Nigel:
- Really they're quite fearful - that's my theory.
- They see us on stage with tight trousers we've got, you
- know, armadillos in our trousers, I mean it's really quite
- frightening...
-
- -This is Spinal Tap
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Thu, 26 Mar 1998 10:37:30 +0100
- From: Fabio.Rotondo@deagostini.it (Fabio Rotondo)
- Subject: Re: Dynamic String problem
-
- Dexter's Music Lab wrote:
-
- > *Slaps forehead in amazement*
-
- :-))
-
- > Thanks Fabio! From now on, the E community may address me as "Drongo,
- > King of All Stupid Mistakes".
-
- Oh, well, if you are the kind, I should be consider "the Emperor".. ;)
-
- > Yep, I'll give that a go. Thanks!
-
- Sorry, but now I don't have the time for writing it for you...What kind of MIDI
- program are you writing?
- I would like to write a MIDI Sequencer, ala CuBase
- and, for sure, I would be able to cover almost all parts of
- the project, but I need someone who can help me
- in handling those damn MIDI messages both in input and output....
- are you that guy?
-
- (If so, please, send me a private e-mail and not use this m/l)
-
-
- Ciao,
-
- Fabio, the Emperor ;-)
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Thu, 26 Mar 1998 12:02:01 +0000
- Subject: Re: Dynamic String problem
-
- > -> Want to build header one element at a time, so treat it as an
- > array -> This data relates to MIDI, but it could be anything,
- > right? header[0] := $F0 header[1] := $41 header[2] := $00
- > header[3] := $46 header[4] := $12
- >
- > StrAdd(message , header , ALL)
- > -> Only first two elements are copied across, as seen in edbg
-
- header[2]=0 !!!!
-
- StrAdd will only consider strings until it finds a NIL char. You'll
- have to memcopy(). Better not use Strings, but vars allocated with
- NEW.
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: GIMBO@pulse-service.co.uk (Dexter's Music Lab)
- Date: Thu, 26 Mar 1998 13:55:13 +0000
- Subject: Re: Dynamic String problem
-
- > header[2]=0 !!!!
- >
- > StrAdd will only consider strings until it finds a NIL char. You'll
- > have to memcopy(). Better not use Strings, but vars allocated with
- > NEW.
-
- I'm using strings because I need to pass these streams of MIDI data
- (which is all CHARs, essentially) between various methods, and I need
- a way to keep track of their length. I saw three options:
-
- 1. Pass arrays of chars and their lengths, as seperate parameters.
- 2. Use strings, since they are essentially arrays of CHARs and keep
- track of their own size.
- 3. Create a midi_data class with an array of CHAR and a size pointer,
- these can be dynamically allocated and I write my own methods for
- combining them/whatever. Just pass pointer to midi_data then. :-)
-
- (1) looked yucky, (3) looked like overkill, (2) looked just right, at
- the time.
-
- Having said that, if I need to write my own function in place of
- StrAdd(), maybe I might as well skip straight to (3)... This method
- will be more extensible in the future if I need to extend my
- functionality, I suppose.
-
- Hmmm, things to think about...
-
- Thanks!
-
- Andy
- - --
- David: It's such a fine line between stupid an'...
- Derek: ...and clever.
- David: Yeah, and clever.
-
- -This is Spinal Tap
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Thu, 26 Mar 1998 18:26:40 +0000
- Subject: Re: Dynamic String problem
-
- > From: GIMBO@pulse-service.co.uk (Dexter's Music Lab)
- > Organization: Pulse Service Centre
- > To: amigae-list@intercom.it
- > Date: Thu, 26 Mar 1998 13:55:13 +0000
- > Subject: Re: Dynamic String problem
- > Reply-to: amigae-list@intercom.it
-
- > > header[2]=0 !!!!
- > >
- > > StrAdd will only consider strings until it finds a NIL char. You'll
- > > have to memcopy(). Better not use Strings, but vars allocated with
- > > NEW.
- >
- > I'm using strings because I need to pass these streams of MIDI data
- > (which is all CHARs, essentially) between various methods, and I
- > need a way to keep track of their length. I saw three options:
- >
- > 1. Pass arrays of chars and their lengths, as seperate parameters.
- > 2. Use strings, since they are essentially arrays of CHARs and keep
- > track of their own size.
- > 3. Create a midi_data class with an array of CHAR and a size
- > pointer,
- > these can be dynamically allocated and I write my own methods
- > for combining them/whatever. Just pass pointer to midi_data
- > then. :-)
- >
- > (1) looked yucky, (3) looked like overkill, (2) looked just right,
- > at the time.
- >
- > Having said that, if I need to write my own function in place of
- > StrAdd(), maybe I might as well skip straight to (3)... This method
- > will be more extensible in the future if I need to extend my
- > functionality, I suppose.
- >
- > Hmmm, things to think about...
- >
- > Thanks!
- >
- > Andy
- > --
- > David: It's such a fine line between stupid an'...
- > Derek: ...and clever.
- > David: Yeah, and clever.
- >
- > -This is Spinal Tap
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Thu, 26 Mar 1998 18:26:40 +0000
- Subject: Re: Dynamic String problem
-
- > I'm using strings because I need to pass these streams of MIDI data
- > (which is all CHARs, essentially) between various methods, and I
- > need a way to keep track of their length. I saw three options:
- > 3. Create a midi_data class with an array of CHAR and a size
- > pointer,
- > these can be dynamically allocated and I write my own methods
- > for combining them/whatever. Just pass pointer to midi_data
- > then. :-)
-
- For sure, creating a midi class is the best solution :) Using OOP
- will make future expansion far easy (IMO).
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Fri, 27 Mar 1998 11:04:53 +0100 (MET)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: amigaguide.library/OpenAmigaGuideAsyncA()
-
- Hi !
-
- I need any examples how to use function like in subject. I need it for
- my MultiView (now is ver. 3.5) to async showing files via datatypes.
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: mofjelds@online.no (Morten Fjeldstad)
- Date: Thu, 26 Mar 1998 21:27:00 +0200
- Subject: Newbe question
-
- Hello,
-
- Any way to program TCP/IP applications in AmigaE?
-
- Kind regards
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sat, 28 Mar 1998 13:17:05 +0100
- From: gamboni@fastnet.ch (Jacques Gamboni)
- Subject: debugging
-
- What tools are available to find a bug in an E prog?
- I can put some WriteF() statements in some places my program to display
- the current state of a variable.
- I can use EDBG to see at which place my program crashes/executes a wrong
- instruction and so on.
- I can use Enforcer to know if my program uses uninitialised pointers or
- goes out of the bounds of an array.
- What else?
- In fact I have a program that has no Enforcer hit but that crashes the
- computer when it quits (with EDBG,
- just when the last ENDPROC is stepped). So none of these above method
- can help me to debug my program..
-
- Maxime
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 28 Mar 98 14:07:06 +0100
- From: kaarej@alpha.barentsnett.no ("Kaare Johansen")
- Subject: Audio allocation
-
- Anyone knows how to code a audio de/allocation src in E?.. I can't get
- my routine to work.. This means that no sounds will interrupt with
- my program, so.. No Displaybeeps will be heard while playing e.g
- modules, anyone that could help me.. Or look at this small code:
-
- MODULE 'dos/dos',
- 'exec/io',
- 'exec/memory',
- 'exec/ports',
- 'devices/audio'
-
- DEF aureq1:PTR TO ioaudio,
- aureq2:ioaudio,
- reply1,reply2,
- ior:PTR TO io,
- dev,
- ioa:PTR TO ioaudio,
- mnode:PTR TO mn
-
- PROC main()
- IF reply1:=CreateMsgPort()
- IF reply2:=CreateMsgPort()
- IF aureq1:=CreateIORequest(reply1, SIZEOF ioaudio)
- /* want to allocate and use any channel with OpenDev() */
- aureq1.data:=[1,2,4,8]:CHAR
- aureq1.length:=4;
- ior:=aureq1
- ior.command:=ADCMD_ALLOCATE
- IF (dev=OpenDevice('audio.device', 0, aureq1, 0))
- REPEAT
- -> For testing audio alloc only
- UNTIL CtrlC()=TRUE
- CloseDevice(dev)
- ENDIF
- DeleteIORequest(aureq1)
- ENDIF
- ENDIF
- DeleteMsgPort(reply2)
- ENDIF
- DeleteMsgPort(reply1)
- ENDPROC
-
-
- --------------------------------------------------------------------------
- _
- /\ Kaare Johansen - Dr. Ice/sEASONS - SysOp At TKS _ // AMIGA /\
- / \ USR Courier 28800 V34/V34+X2 - +47-7847-1042 \X/ / \
- \ / A4000/030/25MHz/10MB/730MB PC Pentium133/32EDO/1.2GHD \ /
- \/ mailto: kaarej@barentsnett.no HTTP://www.barentsnett.no/~kaarej \/
-
- --------------------------- Software used <sb> ---------------------------
-
- Running ABBS v2.x sn: 161 - Coded by JEO, ABBS Support BBS
- Thor v2.5a sn: 1202 - Coded by Ultima Thule Software
-
- If you've seen one city slum, you've seen them all. - Spiro Agnew
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: gary@empire.u-net.com (Gary Colville)
- Date: 28 Mar 1998 00:59:56 0000
- Subject: Newbe question
-
- Morten Fjeldstad <mofjelds@online.no> wrote to amigae-list@intercom.it about Newbe question:
-
- > Hello,
-
- > Any way to program TCP/IP applications in AmigaE?
-
- Yes, Amiga E is great for TCP/IP stuff. I've written a complete
- E-Mail/News client in E (eval copies available from my web site).
-
- You'll need the AmiTCP E modules from Aminet plus a good book on TCP/IP :)
-
- - -- _
- _ // Gary Colville AmigaOS Software Developer
- \X/ gary@empire.u-net.com http://www.empire.u-net.com
- - --
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: dissident@mail.telepac.pt (Roberto)
- Date: Fri, 27 Mar 1998 20:18:02 -0000
- Subject: Frequency rate
-
- I was wondering if you guys could help me. I need to find the frequency rate
- (15 khz, 50hz, etc) of a screen mode using OS functions/structures. Do you
- know how to find that info?
-
-
- - --
- rOBERTo ->dissident@mail.telepac.pt<- !wEb pAGe uNDEr cONSTRUCTIOn!
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sat, 28 Mar 1998 18:01:17 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: Frequency rate
-
- On Fri, 27 Mar 1998, Roberto wrote:
-
- => I was wondering if you guys could help me. I need to find the frequency rate
- =>(15 khz, 50hz, etc) of a screen mode using OS functions/structures. Do you
- =>know how to find that info?
-
- With the displaymode examining functions in graphics.library?
-
- kyz
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sat, 28 Mar 1998 18:03:18 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: Audio allocation
-
- On 28 Mar 1998, Kaare Johansen wrote:
-
- =>Anyone knows how to code a audio de/allocation src in E?
-
- Set your allocation priority to 127. See the aminet:dev/asm/CadOS_13.lha
- for an example (in asm). If you are hitting audio registers directly, then send
- a cmd_reset to the audio.device before deallocating/closing
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sat, 28 Mar 1998 18:05:28 +0000 (GMT)
- From: sac@csd.abdn.ac.uk ("Stuart Caie (kyz)")
- Subject: Re: debugging
-
- On Sat, 28 Mar 1998, Jacques Gamboni wrote:
-
- =>In fact I have a program that has no Enforcer hit but that crashes the
- =>computer when it quits (with EDBG,
- =>just when the last ENDPROC is stepped). So none of these above method
- =>can help me to debug my program..
-
- You could be overwriting your own stack (which the E startup code will choke
- on). Enforcer can't tell you that. You could have left handler/hook code still
- installed, the memory will free on exit and the system calls it as the handler,
- .....
-
- My favourite 4 tools are:
-
- MUNGWALL (detects array overruns, mistakes of ^NIL vs NIL, etc)
- PATCHWORK (detects bad calls to system functions)
- SAFERPATCHES (makes it easier to detect problems when patching the system)
- IO_TORTURE (no comment)
-
- kyz
-
- Ich werde umgehauen; Doch ich stehe wieder auf; Ihr werdet mich nicht
- unterkriegen. Er trinkt einen Whisky; Er trinkt einen Wodka; Er trinkt ein
- Lager; Er trinkt ein Cider. Er singt die Lieder, die ihn; An die guten Zeiten
- erinnern.
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Sat, 28 Mar 1998 14:20:40 +0500
- Subject: Re: debugging
-
- On Sat, 28 Mar 1998, we received a letter from about 'debugging':
-
- > What tools are available to find a bug in an E prog?
- > I can put some WriteF() statements in some places my program to display
- > the current state of a variable.
- > I can use EDBG to see at which place my program crashes/executes a wrong
- > instruction and so on.
- > I can use Enforcer to know if my program uses uninitialised pointers or
- > goes out of the bounds of an array.
- > What else?
-
- EFindHit to pinpoint the place in the source code that generated the Enforcer
- hit.
-
- PoolWatch to track down any poolmem problems if you use pool mem (which you should
- with any half-complex program these days)
-
- > In fact I have a program that has no Enforcer hit but that crashes the
- > computer when it quits (with EDBG,
- > just when the last ENDPROC is stepped). So none of these above method
- > can help me to debug my program..
-
- What guru number? If you get anything else than 80000003/4, then it's very likely
- to tell you if it's about memory being freed twice and such.
-
- Mungwall also helps tracking down memory management problems.
-
-
-
- ... ...NO CARRIER...but I've got 2 destroyers and a frigate.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 29 Mar 98 01:31:27 +0200
- From: savel@kaunas.omnitel.net (Levas)
- Subject: How to program PCMCIA hardware by E
-
- Hi,
-
- I want to hook some hardware to A1200 PCMCIA socket. The only language quick
- enough for my hardware is E. Maybe some one know how to talk with PCMCIA port?
- (Example in Aminet is not good because it uses feature that MEM card is mapped
- to Amiga RAM)
-
- Bye, Levas
- - --
- <tsb>Amiga? Amiga... Amiga!
- - -- e-mail:savel@kaunas.omnitel.net - http://www1.omnitel.net/savel --
-
- Nobody can be just like me. Even I have trouble.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Sun, 29 Mar 1998 11:28:32 +0200
- From: gamboni@fastnet.ch (Jacques Gamboni)
- Subject: bitmap refreshing
-
- Hi #?,
-
- I still have problems with mui bitmaps/images:
- (I already sent a mail 'attribute refreshing with MUI', dated of 1st
- March)
- I managed to use BitmapObjects, using the 'super_picture' AFC class to
- create the bitmap
- (BTW: I had to make an array 'manually' to give MUI the correct array,
- because MUI needs
- three LONG values fo each colour, e.g. $FFFFFFFF,$FFFFFFFF,$FFFFFFFF for
- white.
- How could I convert the output of .palette() into this format? The
- problem with the way I do
- it is that I must have the same palette for each image and stick to it).
-
- So I create a BitmapObject with
-
- /*...*/ MUIA_Bitmap_Bitmap,bmp, /*...*/
-
- (I got bmp using the .bitmap() method of super_picture)
- Here it works perfectly, the colours are right, the bitmap is correctly
- displayed.
- Later I have to change the image in it, but I do not manage to do it: I
- tried
-
- set(gad,MUIA_Bitmap_Bitmap,newbmp) /*gad being the BitmapObject*/
- Mui_Redraw(gad) /*redraw the gadget*/
-
- but nothing happens. If I try to manually resize the window, the bitmap
- is still like it was before
- the two above lines. When the window is closed and opened again (e.g.
- iconification or modification
- of the preferences), the bitmaps displays correctly.
- (Should I close and open the window from the program every time the
- image change? :-(
-
-
- Maxime
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 28 Mar 98 19:35:33 +0200
- From: Bubu@kueste.leine.de (Friedhelm Bunk)
- Subject: UNSUBSCRIBE
-
- UNSUBSCRIBE bubu@kueste.leine.de
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Mon, 30 Mar 1998 09:28:07 +0000
- Subject: Re: debugging
-
- > PoolWatch to track down any poolmem problems if you use pool mem
- > (which you should with any half-complex program these days)
-
- Hey ! I didn't know about poolwatch :)
-
- I absolutely agree about the fact that modern programs should use
- mempools.
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 30 Mar 1998 11:04:52 +0200 (MET DST)
- From: s879@brems.ii.uib.no (Jan Ove Aase)
- Subject: Binary problem...
-
- How do you check and set/clear singel bits in a variable?
-
- ____________________________________________________ _ _
- \___/
- Jan Ove Aase, Fantoft Stud.by, E-921, 5036 Fantoft (o o)__
- s879@ii.uib.no \_/\_ \
- janove@GalaxyCorp.com ___/) \
- http://www.GalaxyCorp.com/janove / ( _\
- ____________________________________________________ \ _// \\_/
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: GIMBO@pulse-service.co.uk (Dexter's Music Lab)
- Date: Mon, 30 Mar 1998 09:31:42 +0000
- Subject: Re: debugging
-
- > > PoolWatch to track down any poolmem problems if you use pool mem
- > > (which you should with any half-complex program these days)
- >
- > Hey ! I didn't know about poolwatch :)
- >
- > I absolutely agree about the fact that modern programs should use
- > mempools.
-
- Could someone please explain this interesting sounding concept?
-
- Thanks!
-
- Andy
- - --
- Marty:
- The review you had on 'Shark Sandwich'...which was merely
- a two word review - just said "shit sandwich." Umm....
-
- -This is Spinal Tap
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: frosetti@hotmail.com ("Fabio Rosetti")
- Subject: Re: Newbe question
- Date: Mon, 30 Mar 1998 02:14:47 PST
-
- >
- >> Hello,
- >
- >> Any way to program TCP/IP applications in AmigaE?
- >
- >Yes, Amiga E is great for TCP/IP stuff. I've written a complete
- >E-Mail/News client in E (eval copies available from my web site).
- >
- >You'll need the AmiTCP E modules from Aminet plus a good book on TCP/IP
- :)
- >
-
- Do you know where we can get example sources in E(C is so messy).
- Maybe you got a few :-)
-
- Dennis
-
-
-
- ______________________________________________________
- Get Your Private, Free Email at http://www.hotmail.com
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: stv@minorisa.es ("Esteve Boix")
- Date: Mon, 30 Mar 1998 12:27:45 +0000
- Subject: Re: debugging
-
- > Could someone please explain this interesting sounding concept?
-
- The idea is simple. A pool of memory is an amount of memory that you
- allocate, then, using some OS (or no-OS) functions, you allocate the
- memory you need from this proviously allocated pool of memory. The
- size of the pool will shrink or expand as necessary.
-
- For example, you have a program that will allocate tons of strings.
- You could allocate a pool of say, 50k, and then allocate the memory
- needed for the strings from this pool.
-
- Using pools speed up memory allocation (a lot, and specially if you
- plan to do a lot of small allocations like creating a E-linked list
- of estrings) and reduces fragmentation a lot, too.
- Another nice side effect is that deleting the pool frees all the
- allocated memory, w/o having to free it yourself (something E already
- does itself :).
-
- AmigaOS v39+ have built-in pool allocation functions, but there are
- some solutions for pre39 systems. There is a module in aminet that
- allows to allocate EStrings from a pool, and work with it
- transparently.
-
- Esteve
- - --
- Esteve Boix - stv@minorisa.es
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 30 Mar 1998 10:01:42 +0100 (BST)
- From: jason@fsel.com (Jason Hulance)
- Subject: Re: <none>
-
- "Stuart Caie \(kyz\)" <sac@csd.abdn.ac.uk> wrote:
-
- > Recently I noticed something that is used in the official documentation and
- > beginner's guide, but never actually explained:
- >
- > When writing exception handlers:
- >
- > EXCEPT
- > means the exception handler is only run if you Raise()/Throw()
- >
- > EXCEPT DO
- > means the exception handler is also run with exception=0 at the end of the
- > procedure it is defined in
-
- Strangely enough, "EXCEPT DO" is explained in the Exceptions chapter of
- the Beginner's Guide. You can find it by using the E Index and clicking
- on the "EXCEPT DO" link...
-
- Cheers!
-
- - --
- The conundrum for today is "antaleldb".
- Your numbers are 100, 4, 2, 3, 5 and 9. The target value is 813.
- ======================================================================
- Jason R. Hulance Email: jason@fsel.com
- Formal Systems (Europe) Ltd Tel: [+44] (0)1865 728460
- Keble Court, 26 Temple St, Oxford OX4 1JS Fax: [+44] (0)1865 201114
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Mon, 30 Mar 1998 09:58:07 +0100 (BST)
- From: jason@fsel.com (Jason Hulance)
- Subject: Re: debugging
-
- Jacques Gamboni <gamboni@fastnet.ch> wrote:
-
- > What tools are available to find a bug in an E prog?
-
- Lots...
-
- > I can put some WriteF() statements in some places my program to display
- > the current state of a variable.
-
- That's one way, and usually the quickest and easiest.
-
- > I can use EDBG to see at which place my program crashes/executes a wrong
- > instruction and so on.
-
- EDBG is extremely useful for finding difficult problems and controlling
- the execution of your code.
-
- > I can use Enforcer to know if my program uses uninitialised pointers or
- > goes out of the bounds of an array.
-
- Enforcer helps you spot silly typos/bad algorithms, but the results can
- sometimes be misleading if you happen to be running nasty hacks at the
- same time...
-
- > What else?
-
- 1) A simple 'avail flush' before and after running your program can help
- track memory losses (but is subject to nasty hacks, as above).
-
- 2) The RKRMs offer some help on common crashes.
-
- 3) There's also Explorer, of course. It's easy to integrate calls to
- Explorer and you can control the execution of your program, again.
-
- 4) If you're doing nasty stuff, multiple tasks, etc. then the DOS
- library can be off-limits. In this case you can't use WriteF(), but
- you can use a separate program and a shared message port...
-
- 5) There are a number of tools out there to track certain resource
- allocations (I've used one called CodeWatcher in the past).
-
- 6) Cut down your code to the smallest thing you can that still exhibits
- the problem. Remove bits, piece by piece, until you start to home in
- on the code that is really causing the problem. (This is about the
- only way to be confident of something like a compiler bug...)
-
- > In fact I have a program that has no Enforcer hit but that crashes the
- > computer when it quits (with EDBG, just when the last ENDPROC is
- > stepped). So none of these above method can help me to debug my
- > program..
-
- In any language it's easy to make subtle mistakes in your program's
- logic and data usage that are near impossible to find using standard
- debugging tools. In very high-level languages you're normally spared
- the system crashes, though...
-
- - --
- The conundrum for today is "paeremelh".
- Your numbers are 50, 9, 6, 7, 10 and 1. The target value is 871.
- ======================================================================
- Jason R. Hulance Email: jason@fsel.com
- Formal Systems (Europe) Ltd Tel: [+44] (0)1865 728460
- Keble Court, 26 Temple St, Oxford OX4 1JS Fax: [+44] (0)1865 201114
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: agraham@hal9000.net.au (Ali Graham)
- Date: Tue, 31 Mar 1998 00:17:29 +1000
- Subject: Re[2]: debugging
-
- On 30-Mar-98, someone (I think it was Jason Hulance) might have
- written:
-
- JH> 4) If you're doing nasty stuff, multiple tasks, etc. then the DOS
- JH> library can be off-limits. In this case you can't use
- WriteF(), but
- JH> you can use a separate program and a shared message port...
- JH>
-
- In this case, you can always use the routines from debug.m (in dev/e)
- and a program like Sushi. (i.e. kprintf() etc.)
-
- A little more roundabout, but it usually works...
-
- Ali.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: mofjelds@online.no (Morten Fjeldstad)
- Date: Mon, 30 Mar 1998 17:39:20 +0200
- Subject: Re: Newbe question
-
- Hello Gary
-
- On 28-Mar-98, you wrote:
-
- >> Any way to program TCP/IP applications in AmigaE?
- > Yes, Amiga E is great for TCP/IP stuff. I've written a complete
- > E-Mail/News client in E (eval copies available from my web site).
- > You'll need the AmiTCP E modules from Aminet plus a good book on TCP/IP :)
-
- No modules for MIAMI out there?
-
-
- Morten.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Mon, 30 Mar 1998 15:32:43 +0500
- Subject: Re: Binary problem...
-
- On Mon, 30 Mar 1998, we received a letter from about 'Binary problem...':
-
- > How do you check and set/clear singel bits in a variable?
-
- DEF var=$20
-
- /* 0010 0000 */
-
-
- /* This will set the first bit.
-
- 0010 0000
- 0000 0001 OR
- ------------
- 0010 0001
- */
-
- var := var OR $21
-
- /* This will clear the 6th bit
-
- 0010 0001
- 1101 1111 AND
- -------------
- 0000 0001
- */
-
- var := var AND $D1
-
-
- You simply use hexadecimal masks with the AND and OR operator.
-
-
- Ciao!
-
-
-
- ... Life sucks, but Death swallows.
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: merlin@thule.no (Eric Sauvageau)
- Date: Mon, 30 Mar 1998 16:39:31 +0500
- Subject: Re[2]: debugging
-
- On Mon, 30 Mar 1998, we received a letter from about 'Re: debugging':
-
- > 4) If you're doing nasty stuff, multiple tasks, etc. then the DOS
- > library can be off-limits. In this case you can't use WriteF(), but
- > you can use a separate program and a shared message port...
-
- In such case, debug.m, kprintf() and Sushi are your best friends. :)
-
-
-
- ... Miracle worker, Doctor! I'm a dammit, not a jim... no scratch that...
-
- - --
-
- ===--- - - -
- Eric Sauvageau http://www.thule.no/~merlin/ merlin@thule.no
- Amiga wizard known as Merlin, casting with E runes, resulting in:
- DevsMan - MFormat - NewIcons4 - SysInspector - XPKatana
- - - - - ---===
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: LOREJ@IWC-SDT.dssd.sub.org (Jens Lorenz)
- Subject: HELP
- Date: Mon, 30 Mar 1998 22:58:28 +0200
-
- HELP
-
- .
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: gary@empire.u-net.com (Gary Colville)
- Date: 31 Mar 1998 03:23:15 0000
- Subject: Re: Newbe question
-
- Morten Fjeldstad <mofjelds@online.no> wrote to amigae-list@intercom.it about Re: Newbe question:
-
- >>> Any way to program TCP/IP applications in AmigaE?
- >> Yes, Amiga E is great for TCP/IP stuff. I've written a complete
- >> E-Mail/News client in E (eval copies available from my web site).
- >> You'll need the AmiTCP E modules from Aminet plus a good book on TCP/IP :)
-
- > No modules for MIAMI out there?
-
- Miami uses an API that is AmiTCP compatable so the AmiTCP modules work
- just fine.
-
- - -- _
- _ // Gary Colville AmigaOS Software Developer
- \X/ gary@empire.u-net.com http://www.empire.u-net.com
- - --
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: Tue, 31 Mar 1998 15:44:02 +0200 (MET DST)
- From: szczepan@cksr.ac.bialystok.pl ("Marcin Juszkiewicz (Szczepan/BlaBla)")
- Subject: Re: Re[2]: debugging
-
- On Mon, 30 Mar 1998, Eric Sauvageau wrote:
-
- - ->> 4) If you're doing nasty stuff, multiple tasks, etc. then the DOS
- - ->> library can be off-limits. In this case you can't use WriteF(), but
- - ->> you can use a separate program and a shared message port...
- - ->
- - ->In such case, debug.m, kprintf() and Sushi are your best friends. :)
-
- I propose you MungFriend as Sushi replacement. It create reset-proof
- buffer and flashes when something going to serial port so you can't miss
- hits.
-
- - ------
- Marcin Juszkiewicz (Szczepan/BlaBla) *Team Amiga*
- szczepan@cksr.ac.bialystok.pl http://cksr.ac.bialystok.pl/szczepan/
- A1200 BlizzIv 2+8MB RAM 425MB HDD
- Author of MultiView for OS 2.0+ -> Aminet:util/sys/2b_mv_os2_x.lha
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: a9660319@wlv.ac.uk
- Subject: 2D arrays
- Date: Tue, 31 Mar 1998 17:10:48 -0500 (EST)
-
- Hi there list!
-
- E has a limitation, to do with 2D arrays, I need to use large (say,
- 400x400, LONG) chunk of memorey.
-
- How do you get around this problem? I`ve been using bitmaps, but that
- only gives me 0..256, now I need 0..LONG, (Be nice If I could use
- floats).
-
- Just some pointers to good source codes, and ideas that I should be
- pursuing.
-
- Please try not to continue this thread past Friday, as I don`t have
- access to my e-mail after then.
-
- Thanks!
-
- Andrew Hutchins :)
-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: Peter.Karlsson@swipnet.se (Peter Karlsson)
- Date: Tue, 31 Mar 1998 17:48:40 +0100
- Subject: Parsing an ASCII prefsfile
-
- Hello,
-
- I'm a newbie to this list and I've got a question which has probably
- been asked before. If so, I'm very sorry.
-
- I need to parse a preference file in pure ASCII in a program I'm
- working on. And I have absolute no clue how to do this in a "smart"
- way. I've asked around and one answer I got was "use ReadArgs()".
- Sadly this doesn't make me say "aha". :-) Another solution was
- that I should use Tooltypes. Unfortunately I've got about 300 items in
- my prefs file, so using Tooltypes would be a bit messy.
- So, if any of you people could help me out here, I'd be very grateful.
-
- Kind regards
- /Peter
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 31 Mar 98 20:28:01 +0100
- From: seasons@softhome.net (Lloyd Rosen)
- Subject: MUI
-
- Somebody mentioned something about MUI macros?
-
- What are these and how do I use them?
-
- And where do I find them?
-
-
-
- Regards,
-
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
- ____ ____
- Lloyd Rosen _\/\/_ 680x0 ÷ AmigaE ÷ 6510 _\/\/_ `LloydROSN'
- ÷ ¯¯\/¯¯ Mus¡c ÷ Design ¯¯\/¯¯ on
- sEASONS IRCnet
- ¯¯¯¯¯¯¯ s e a s o n s @ s o f t h o m e . n e t ¯¯¯¯¯¯
- - -÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-=-÷-
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- From: mofjelds@online.no (Morten Fjeldstad)
- Date: Tue, 31 Mar 1998 19:37:32 +0200
- Subject: IDE
-
- Hello,
-
- Is there a good IDE for AMiga E out there? I tried some editors etc. from
- the Aminet. But nothing impessive.
-
-
- Kind regards
- Morten.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
- Date: 31 Mar 98 21:07:07 +0200
- From: savel@kaunas.omnitel.net (Levas)
- Subject: Re: Parsing an ASCII prefsfile
-
- >I need to parse a preference file in pure ASCII in a program I'm
- >working on. And I have absolute no clue how to do this in a "smart"
- How about reading text file to RAM. Then you can search for keywords and use
- values near keywords?
-
- VERYIMPORTANTVALLUE=58758
-
- Search for VERYIMPORTANTVALLUE= and EOL string. Then analize data between this
- words. Add comment keyword to make you config file more cool :)
- Oh yes! you've got damn windows.ini file!!
-
- After analizing data, put values to some internal format like mydata.x=58758
- and free allocated buffer.
-
- Bye, Levas
- - --
- <tsb>Amiga? Amiga... Amiga!
- - -- e-mail:savel@kaunas.omnitel.net - http://www1.omnitel.net/savel --
-
- Don't judge a book by its mini-series.
-
- ------- CUT --- CUT --- CUT --- CUT --- CUT --- CUT --- CUT -------
-
-
-